我有这个简单的脚本向下滚动页面
function scrollDown() {
window.scrollBy(0,50); // horizontal and vertical scroll increments
}
scrolldelay = setTimeout('scrollDown()',100); // scrolls every 100 milliseconds
Run Code Online (Sandbox Code Playgroud)
现在我希望拦截用户向上滚动以停止使用a的setTimeout
clearTimeout(scrolldelay);
Run Code Online (Sandbox Code Playgroud)
任何的想法?优选纯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();
Run Code Online (Sandbox Code Playgroud)
工作原理:每次滚动页面时,它都会将当前的scrollTop 与前一个scrollTop 进行比较。如果我们检测到页面已向上滚动,我们就会停止该间隔。
您可以通过再次调用 start() 来重新启动滚动。
在这里尝试一下: http: //jsfiddle.net/fR9Wt/3/
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |