jQuery 使用鼠标事件滚动



有没有办法在自动滚动时触发实际的鼠标滚动事件?

我正在使用以下代码来模拟自动滚动

setInterval(function scroll() {
for (var i = 0; i < 4000; i += 800) {
$("html, body").animate({
scrollTop: i
}, 500).delay(500);
}

我以某种方式想在每次发生自动滚动时调用鼠标滚轮滚动事件

$(window).on('wheel', function(event){
});

jQuery中有一个scroll事件,你可以用它来绑定一个处理程序(docs.https://api.jquery.com/scroll/(,如下所示:

$("html, body").on('scroll', function(){ alert('Scrolled'); });

顺便说一下,滚动事件会在滚动时多次触发,所以一直触发处理程序真的不是一个好主意,你应该看看debounce函数来解决这个问题(https://davidwalsh.name/javascript-debounce-function(

您可以简单地将事件处理程序添加到 setInterval 中。

setInterval(function scroll() {
for (var i = 0; i < 4000; i += 800) {
$("html, body").animate({
scrollTop: i
}, 500).delay(500);
// do also something else (event handler)
}

最新更新