如何在滚动条移动时隐藏Div
How to hide a Div when the scroll bar is moving with jQuery?
我只是希望#menu
在滚动条移动时褪色,以提供一个不那么混乱的界面。有允许这样做的代码吗?
我想基本上我要找的是如何抓取滚动条移动事件。滚动1秒后,#menu
缓慢淡出,滚动2秒后,#menu
恢复。
非常感谢!
var $menu = $("#menu");
var opacity = $menu.css("opacity");
var scrollStopped;
var fadeInCallback = function () {
if (typeof scrollStopped != 'undefined') {
clearInterval(scrollStopped);
}
scrollStopped = setTimeout(function () {
$menu.animate({ opacity: 1 }, "slow");
}, 2000);
};
$(window).scroll(function () {
if (!$menu.is(":animated") && opacity == 1) {
$menu.animate({ opacity: 0 }, "slow", fadeInCallback);
} else {
fadeInCallback.call(this);
}
});
http://jsfiddle.net/zsnfb/9/设置滚动事件做一些事情。首先,它清除了一个超时,以便将菜单div淡出。之后,如果菜单还没有淡出,它会淡出菜单并在回调中设置超时。如果菜单已经淡出,它只是设置超时。如果用户停止滚动,菜单将在2秒后淡出。
还有其他使用fadeOut()和fadeIn()的解决方案。在这种情况下,我对这些函数的唯一问题是将display: none;
设置为菜单div将影响页面的布局,而设置visibility: hidden;
或opacity: 0;
不应该影响布局。
右用:
$('body').scroll(function(){
$('#menu').fadeOut();
var scrollA = $('body').scrollTop();
setTimeout(function(){
if(scrollA == $('body').scrollTop()){
$('#menu').fadeIn();
}
}, 200);
})
所以我们记录滚动量,等待200毫秒,然后看看滚动是否改变,如果没有,我们将菜单淡入
我想这就是你要找的http://jsfiddle.net/wfPB6/
相关文章:
- Onchange没有'不要显示或隐藏Div
- 当DIV的高度低于某个数字时,隐藏DIV的正确逻辑是什么
- 如何使用Javascript替换和隐藏Div内容
- 单击javascript按钮显示/隐藏Div元素
- 隐藏 DIV 标签,直到填充所有文本字段
- 检测HTML5视频是否正在播放或暂停,并相应地显示或隐藏Div
- 通过点击隐藏DIV,并通过JavaScript显示另一个DIV
- 如果另一个存在jQuery,则隐藏Div
- 使用JS隐藏Div(简单)
- 根据搜索内容和Div中的文本值隐藏Div
- 使用 javascript 在 DOM 中隐藏 DIV 中的文本,具体取决于另一个 DIV 中的文本
- 如果显示 n/a 值,则隐藏 DIV
- 我将如何制作一个使用纯JavaScript在点击时隐藏DIV的系统
- 如果文本为 0,JavaScript 隐藏 DIV 标记
- 从选择选项中隐藏 Div 时
- 在鼠标悬停时显示/隐藏 DIV
- 使用 JavaScript 显示/隐藏 DIV
- 显示/隐藏 Div 仅由按钮触发
- 根据选择语句选项隐藏 Div 类
- 隐藏 DIV,如果窗口窄于 DIV,则替换为 DIV