javascript - 自动向下滚动页面,直到用户向上滚动

标签 javascript

我得到了这个简单的脚本来向下滚动页面

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() 来重新开始滚动。

在这里试试:http://jsfiddle.net/fR9Wt/3/

关于javascript - 自动向下滚动页面,直到用户向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318139/

相关文章:

javascript - 如何在谷歌地图上平移?

JavaScript 不考虑退出条件,而变量仍然等于输出条件

javascript - 如何更新嵌入的 svg 元素的源

javascript - ReactJS 错误预期语法错误 : Unexpected token, ; (19:21)( Material -ui)

javascript - 传递给initialPreview属性的<img>标签数组

javascript - 如何将模块导入到在别处更改的 AudioWorkletProcessor 中?

javascript - 带 Stripe 的自定义字体 src

javascript 从列表中获取图像

javascript - JQuery Masonry 不工作

javascript - 单击书签时意外打开新页面