Javascript 不在浏览器中滚动时的jQuery事件侦听器?
我需要在浏览器未滚动时设置目标: 到目前为止,我有以下代码:Javascript 不在浏览器中滚动时的jQuery事件侦听器?,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我需要在浏览器未滚动时设置目标: 到目前为止,我有以下代码: var position = jQuery(window).scrollTop(); // how much is scolling // should start at 0 jQuery(window).scroll(function() { var scroll = jQuery(window).scrollTop(); if(scroll > position) { // scrolling do
var position = jQuery(window).scrollTop(); // how much is scolling
// should start at 0
jQuery(window).scroll(function() {
var scroll = jQuery(window).scrollTop();
if(scroll > position) { // scrolling down
// do something when scrolling down
} else if(scroll < position) { // scrolling up
// do something when scrolling up
}else { // idle???
// do something when idle
}
position = scroll;
});
var position=jQuery(窗口).scrollTop();//斯科林多少钱
//应该从0开始
jQuery(窗口).滚动(函数(){
var scroll=jQuery(window.scrollTop();
如果(滚动>位置){//向下滚动
//向下滚动时执行某些操作
}否则如果(滚动<位置){//向上滚动
//向上滚动时执行某些操作
}还有{//空闲???
//闲着做事
}
位置=滚动;
});
上下滚动效果很好,但我无法在根本没有滚动的情况下锁定目标。如何实现这一点?使用变量跟踪滚动状态,使用计时器确定滚动是否已停止N秒
var scroll_active = false;
var scroll_timer = new Date();
启动滚动计时器:
check_scroll_time();
然后,在scroll上,在scroll\u timer
变量中重新设置时间戳:
$(window).scroll(function(){
scroll_timer = new Date();
//Your existing code goes here; No-scroll events are handled in check_scroll_time()
var scroll = jQuery(window).scrollTop();
if(scroll > position) { // scrolling down
// do something when scrolling down
} else if(scroll < position) { // scrolling up
// do something when scrolling up
}
});
body{高度:700vh;}
#模糊{位置:固定;顶部:50px;宽度:100vw;文本对齐:中心;}
#msg{位置:固定;顶部:0;右侧:0;文本对齐:中间;填充:5px;背景:小麦;}
滚动-当用户停止滚动时,只需观察一次2秒的暂停
,还是重复?您的用例是什么?不滚动=默认行为,当用户滚动可能重复的
function check_scroll_time(){
now = new Date();
if ((now.getTime() - scroll_timer.getTime())/1000 > 2){
//No scrolling - do something
}else{
//Scrolling is active - do nothing
}
setTimeout(function(){ check_scroll_time() },300); //<==== call ad-infinitum
}