我在触摸板滚动时遇到问题。这就是我的网站的外观:点击。您可以使用向上/向下箭头,菜单和鼠标滚轮在此处导航。一切都很好,除了使用触摸板滚动。当你这样做时,它就像几个鼠标滚轮滚动一样被解释。所以你不是从顶部到第二个屏幕,而是到最后一个屏幕。我在考虑这个问题,我的解决方案是:
- 检测滚动方向
- 滚动到下一个/上一个屏幕
- 停止滚动
但是我不知道如何"停止滚动"。谁能帮我?:)
好的,我已经想出了如何做到这一点。也许这不是最好的方法,但它有效。代码:
scrollTimes ={
up : 0,
down : 0
};
$('body').bind('DOMMouseScroll', function(e){
if(e.originalEvent.detail > 0) {
scrollTimes.down++;
if(scrollTimes.down === 1 ) {
api.next(2000);
}
}
else {
scrollTimes.up++;
if(scrollTimes.up === 1 ) {
api.prev(2000);
}
}
setTimeout( function() { scrollTimes = { up : 0, down : 0};}, 2000);
return false;
});
$('body').bind('mousewheel', function(e){
if(e.originalEvent.wheelDelta < 0) {
scrollTimes.down++;
if(scrollTimes.down === 1 ) {
api.next(2000);
}
}
else {
scrollTimes.up++;
if(scrollTimes.up === 1 ) {
api.prev(2000);
}
}
setTimeout( function() { scrollTimes = { up : 0, down : 0};}, 2000);
return false;
});
我将 setTimeout 中的时间设置为 2000,因为这是滚动到下一个/上一个屏幕的时间:)