我想用 jQuery 来
- 检测用户是否滚动到页面顶部,并且
- 在那里呆了一段时间。
我已经设法使用下面的代码获得第一点,但对第二点一无所知。
$(window).scroll(function() {
if($(window).scrollTop() == 0) {
// do something
}
});
所以基本上你可以做一个 setTimeout,然后如果他们再次滚动就清除超时。例如:
var timer;
$(window).scroll(function() {
if($(this).scrollTop() === 0) {
timer = setTimeout( doSomething, 2000 );
} else {
clearTimeout(timer);
}
});
var doSomething = function(){
alert('I just sat at the top for two seconds!');
};
工作示例:http: //jsfiddle.net/dXRhb/2/
</p>
如果用户向下滚动页面,则清除超时。否则它将在 1000 毫秒后调用函数(您可以根据您的要求进行设置)。
var c;
$(window).scroll(function() {
if($(window).scrollTop() == 0) {
c = setTimeout(function(){
// do stuff
}, 1000);
}
else{
clearTimeout(c);
}
});
var myTimer; // Global variable
$(window).scroll(function()
{
if($(window).scrollTop()==0)
{
myTimer = setTimeout(function() {
/* what you want to happen goes here */
},
1000) // Time in milliseconds
}
else
{
clearTimeout(myTimer);
}
});
没有全局变量怎么办?
$(window).on('scroll', function() {
if ($(this).scrollTop() === 0) {
$(this).data('scrollTimer',
setTimeout(function(){
// do stuff
}, 1000)
);
}
else{
clearTimeout($(this).data('scrollTimer'));
}
});