如何使用jQuery/JavaScript检测触摸板滚动

如何使用jQuery/JavaScript检测触摸板滚动,javascript,jquery,Javascript,Jquery,我正在建立网页。它看起来像一个页面,但我处理的是部分。单击按钮控件,我隐藏了所有部分,并在屏幕上显示特定部分。 那个么,我可以用鼠标垫上下滚动来做同样的控制吗?我已经在谷歌查过了,我找不到合适的解决方案。 如果此问题已发布,请提供参考链接。您可以使用回复用户滚动,如下所示: $("#target").scroll(function(event) { console.log("scroll event received:", event); }); 请注意,滚动事件的触发频率非常高,因此

我正在建立网页。它看起来像一个页面,但我处理的是部分。单击按钮控件,我隐藏了所有部分,并在屏幕上显示特定部分。 那个么,我可以用鼠标垫上下滚动来做同样的控制吗?我已经在谷歌查过了,我找不到合适的解决方案。 如果此问题已发布,请提供参考链接。

您可以使用回复用户滚动,如下所示:

$("#target").scroll(function(event) {
    console.log("scroll event received:", event);
});
请注意,滚动事件的触发频率非常高,因此,如果您执行任何使浏览器难以工作的操作,则应注意限制事件,即确保仅每隔x毫秒左右执行一次代码

如果只想在滚动停止后执行代码


在本例中,传递给afterScrollStops函数的回调函数在用户停止滚动后执行。

您是否尝试过此操作->是,我尝试过。但是我没有得到正确的回应,我认为有一个完美的解决方案来检测触摸板滚动,但有解决办法。增量速度增加40倍。从那里你可以发现它。要了解更多信息,请检查这个答案:好的,我会检查这个。当然,谢谢。我会检查的
function checkf(predf, callback, ms) {
    window.setTimeout(function () {
        if (predf()) {
            callback();
            return;
        }
        checkf(predf, callback, ms);
    }, ms);
}

function afterScrollStops(func) {
    var ms = 100, // interval to perform the scroll position check
        oldX = $(document).scrollLeft(),
        oldY = $(document).scrollTop();

    function startf() {
        $(document).one("scroll", function () {
            checkf(function () {
                var newX = $(document).scrollLeft(),
                    newY = $(document).scrollTop(),
                    stoppedScrolling = newX === oldX && newY === oldY;

                oldX = newX;
                oldY = newY;

                return stoppedScrolling;
            }, function () {
                func();
                startf();
            }, ms);
        });
    }

    startf();
}

afterScrollStops(function () {
    console.log("user stopped scrolling");
});