我知道当用户滚动到特定点时如何运行代码,但是当用户滚动(无论在哪里或哪里)时,我找不到关于显示元素的问题,然后在用户停止滚动时隐藏它。有没有一种直接的方法来实现这个jQuery?
答案 0 :(得分:2)
在元素上使用固定定位,并使用此事件:
$(window).scroll(function() {
$(element).stop(true, true).show().fadeOut('fast');
});
这将在滚动时显示元素,然后在滚动停止时将其淡出。 stop()
方法停止当前正在运行的动画。
答案 1 :(得分:1)
jQuery没有事件" scrollStop"所以你可以使用setTimeout来做你的行动
<div>
<div class="fade">
Scroll down i will become invisible
</div>
</div>
$(window).scroll(function() {
clearTimeout($.data(this, 'scrollTimer'));
$('.fade').show();
$.data(this, 'scrollTimer', setTimeout(function() {
// do something
$('.fade').hide();
}, 250));
});
答案 2 :(得分:1)
我的建议是使用一个函数在立即滚动时显示元素,然后在一定时间后隐藏它。如果我们再次滚动,我们基本上会再次“推”计时器。这基本上是你可能听说过的去抖动的概念。因此,我的解决方案如下所示:
var hideTimeout = null;
var show = function() {
$('#theone').show();
}
var hide = function() {
$('#theone').hide();
}
$(document).ready(function(){
$(window).scroll(function(e){
if (hideTimeout) {
window.clearTimeout(hideTimeout);
hideTimeout = null;
}
show();
window.setTimeout(hide, 500);
});
});