如何使用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");
});