Jquery 悬停时保持淡入/淡出菜单可见

Jquery 悬停时保持淡入/淡出菜单可见,jquery,scroll,opacity,jquery-hover,Jquery,Scroll,Opacity,Jquery Hover,我有一个顶部菜单,当我滚动时会淡入,当我不滚动时会淡出。 当我不滚动时,它会在1300毫秒内保持可见,在此期间,我希望它保持可见,以防我将鼠标悬停在它上面 滚动条上的淡入位工作正常,但如果我将鼠标悬停在滚动条上,它将不可见 这是我的代码: $(函数(){ $(窗口)。滚动(函数(){ var scrollTop=$(窗口).scrollTop(); 如果(滚动顶部>150){ 美元("顶部").法代因(400),; clearTimeout($.data(这是“滚动计时器”); $.data(

我有一个顶部菜单,当我滚动时会淡入,当我不滚动时会淡出。 当我不滚动时,它会在1300毫秒内保持可见,在此期间,我希望它保持可见,以防我将鼠标悬停在它上面

滚动条上的淡入位工作正常,但如果我将鼠标悬停在滚动条上,它将不可见

这是我的代码:

$(函数(){
$(窗口)。滚动(函数(){
var scrollTop=$(窗口).scrollTop();
如果(滚动顶部>150){
美元("顶部").法代因(400),;
clearTimeout($.data(这是“滚动计时器”);
$.data(此“滚动计时器”,setTimeout(函数(){
$('顶部')。淡出(400);
}, 1300));
}否则{
clearTimeout($.data(这是“滚动计时器”);
$('顶部')。淡出(400);
}
$(“#顶部”)。悬停(
职能(e){
var scrollTop=$(窗口).scrollTop();
如果(scrollTop!=0){
$('#top').stop().animate({'opacity':'1'},400);
}
},
职能(e){
var scrollTop=$(窗口).scrollTop();
如果(scrollTop!=0){
$('#top').stop().animate({'opacity':'0.2'},400);
}
}
);
});
});
body{height:3000px;}
李先生{
列表样式类型:无;
列表样式:无;
文字装饰:无;
}
#顶部,#顶部静电{
身高:5%;
宽度:92%;
最大宽度:1150px;
背景:灰色;
排名:0;
左:0;
右:0;
框大小:边框框;
保证金:0自动;
}
#顶{
位置:固定;
z指数:9999;
}
#顶级ul{
宽度:440px;
保证金:0自动;
身高:100%;
}
#李克强{
浮动:左;
填充:2%10px;
}
#顶李:悬停{
背景色:#D9D9D9;
}


我修改了您的脚本,以便在全局范围内使用
scrollTimer

这样,可以更容易地设置或清除

我使用函数来避免过多的重复代码

看一看
;)

$(函数(){
变量滚动定时器;
函数setTimer(){
scrollTimer=setTimeout(函数(){
$('顶部')。淡出(400);
}, 1300);
}
函数clearTimer(){
clearTimeout(滚动计时器);
}
$(窗口)。滚动(函数(){
var scrollTop=$(窗口).scrollTop();
如果(滚动顶部>150){
美元("顶部").法代因(400),;
clearTimer();
setTimer();
}
$(“#顶部”)。悬停(
职能(e){
clearTimer();
var scrollTop=$(窗口).scrollTop();
如果(scrollTop!=0){
$('#top').stop().animate({'opacity':'1'},400);
}
},
职能(e){
var scrollTop=$(窗口).scrollTop();
如果(scrollTop!=0){
setTimer();
}
}
);
});
});
body{height:3000px;}
李先生{
列表样式类型:无;
列表样式:无;
文字装饰:无;
}
#顶部,#顶部静电{
身高:5%;
宽度:92%;
最大宽度:1150px;
背景:灰色;
排名:0;
左:0;
右:0;
框大小:边框框;
保证金:0自动;
}
#顶{
位置:固定;
z指数:9999;
}
#顶级ul{
宽度:440px;
保证金:0自动;
身高:100%;
}
#李克强{
浮动:左;
填充:2%10px;
}
#顶李:悬停{
背景色:#D9D9D9;
}


我修改了您的脚本,以便在全局范围内使用
scrollTimer

这样,可以更容易地设置或清除

我使用函数来避免过多的重复代码

看一看
;)

$(函数(){
变量滚动定时器;
函数setTimer(){
scrollTimer=setTimeout(函数(){
$('顶部')。淡出(400);
}, 1300);
}
函数clearTimer(){
clearTimeout(滚动计时器);
}
$(窗口)。滚动(函数(){
var scrollTop=$(窗口).scrollTop();
如果(滚动顶部>150){
美元("顶部").法代因(400),;
clearTimer();
setTimer();
}
$(“#顶部”)。悬停(
职能(e){
clearTimer();
var scrollTop=$(窗口).scrollTop();
如果(scrollTop!=0){
$('#top').stop().animate({'opacity':'1'},400);
}
},
职能(e){
var scrollTop=$(窗口).scrollTop();
如果(scrollTop!=0){
setTimer();
}
}
);
});
});
body{height:3000px;}
李先生{
列表样式类型:无;
列表样式:无;
文字装饰:无;
}
#顶部,#顶部静电{
身高:5%;
宽度:92%;
最大宽度:1150px;
背景:灰色;
排名:0;
左:0;
右:0;
框大小:边框框;
保证金:0自动;
}
#顶{
位置:固定;
z指数:9999;
}
#顶级ul{
宽度:440px;
保证金:0自动;
身高:100%;
}
#李克强{
浮动:左;
填充:2%10px;
}
#顶李:悬停{
背景色:#D9D9D9;
}


我在那里接受答案有点太快了。有一件事不是我想要的,那就是曾经在菜单上悬停过(无论我是单击菜单项还是仅仅“悬停关闭”再一次,菜单不再显示在滚动上。你知道为什么吗?我看到了…不透明度…等等。我删除了mouseout上的不透明度更改…我想让它半透明几毫秒…我也可以将滚动上的不透明度重置为1。我接受答案的速度有点太快了。这里有有一件事不是我想要的,它曾经在菜单上悬停过(无论我是单击菜单项还是“悬停关闭”再一次,菜单不再显示在滚动上。你知道为什么吗?我看到了…不透明度…等一下。我删除了mouseout上的不透明度更改…我想让它半透明几毫秒…我也可以将滚动上的不透明度重置为1。