我得到了这个简单的脚本来向下滚动页面
function scrollDown() {
window.scrollBy(0,50); // horizontal and vertical scroll increments
}
scrolldelay = setTimeout('scrollDown()',100); // scrolls every 100 milliseconds
现在我希望在用户向上滚动以停止 setTimeout 时进行拦截
clearTimeout(scrolldelay);
有什么想法吗? 最好用纯js
已接受答案的替代方案在这里:http://jsfiddle.net/Vy8tW/
最佳答案
var start = (function() {
function scrollTop() {
return window.scrollTop || document.body.scrollTop || (document.documentElement && document.documentElement.scrollTop)
}
var top = scrollTop();
var interval;
window.onscroll = function() {
var newtop = scrollTop();
if (newtop < top) {
clearInterval(interval);
}
top = newtop;
};
return function() {
interval = setInterval(function() {
window.scrollBy(0, 50);
}, 100);
}
}());
start();
工作原理:每次滚动页面时,它都会将当前 scrollTop 与前一个进行比较。如果我们检测到页面已经向上滚动,我们就停止间隔。
您可以通过再次调用 start() 来重新开始滚动。
关于javascript - 自动向下滚动页面,直到用户向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318139/