我使用scrollTop
jQuery 上的鼠标滚轮调整在我的网站上导航,问题是:它适用于真正的鼠标(不是那么糟糕):如果你滚动 2,你必须滚动一个档位才能进入网站的第二部分缺口它将转到第 3 页等。
因此,当有人使用笔记本电脑滚动时,它看起来非常有问题:它直接进入网站的最后一页。
我想知道如何在用户停止滚动之前捕捉几个滚动凹槽。就像在这个页面上一样:neverbland.com
这是我的:knmprod.com/knmprod
我使用scrollTop
jQuery 上的鼠标滚轮调整在我的网站上导航,问题是:它适用于真正的鼠标(不是那么糟糕):如果你滚动 2,你必须滚动一个档位才能进入网站的第二部分缺口它将转到第 3 页等。
因此,当有人使用笔记本电脑滚动时,它看起来非常有问题:它直接进入网站的最后一页。
我想知道如何在用户停止滚动之前捕捉几个滚动凹槽。就像在这个页面上一样:neverbland.com
这是我的:knmprod.com/knmprod
每次收到鼠标滚轮事件时设置一个计时器,每次收到另一个事件时取消第一个事件。
只有在您停止获取事件一段时间(例如 0.5 秒)后才会触发您的操作。
var timer, longTimer = false, delta;
$('.page').bind('mousewheel', function(e, localDelta) {
if(!longTimer) longTimer = setInterval(action, 1500);
clearInterval(timer);
timer = setInterval(action, 500);
delta = localDelta;
}
function action() {
clearInterval(timer);
clearInterval(longTimer);
longTimer = false;
if(delta<0) {
number=plusone(number);
goToByScroll(number);
} else {
number= minusone(number);
goToByScroll(number);
}
}
您可以使用鼠标滚轮插件和计时器来检查滚轮何时没有移动几毫秒(例如 250 毫秒),然后执行页面更改。无论鼠标的速度或类型如何,这将允许每次鼠标移动只更改一个页面 - 与 neverbland.com 一样:
$('body').mousewheel(function() {
clearTimeout($(this).data('timer'));
$(this).data('timer', setTimeout(function() {
alert('Change Page');
}, 250));
});
我希望这有帮助!