可能重复: ScrollTop的Chrome真让人抓狂
我使用下面的代码来获得一个返回到顶部的按钮和一个导航,一旦用户滚动就会淡入。问题是它每次滚动时都会触发,因此导致滚动变得非常不稳定。是否有一种替代的方法来完成这个操作,这可能只触发函数一次?
$(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 600) {
$('#backToTop, #navigation').fadeIn();
} else {
$('#backToTop, #navigation').fadeOut();
}
});
});
});发布于 2012-11-05 00:09:19
也许设置一个暂停..。
function scrollit(){
if ($(this).scrollTop() > 600) {
$('#backToTop').fadeIn();
} else {
$('#backToTop').fadeOut();
}
}
var timer;
$(window).scroll(function () {
window.clearTimeout(timer);
timer = window.setTimeout(function(){ scrollit(); }, 2000);
}); 发布于 2012-11-04 23:54:18
您可以实现本·阿尔曼的jQuery节流阀插件。基本上,这限制了您的函数只能运行一定的时间。两者之间的区别在网站上得到解释:
简单地说:虽然节流将函数的执行限制在每毫秒延迟不超过一次,但取消保证函数只执行一次(给定指定的阈值)。
https://stackoverflow.com/questions/13224207
复制相似问题