有没有办法在自动滚动时触发实际的鼠标滚动事件?
我正在使用以下代码来模拟自动滚动
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)
}