触摸板滚动jQuery的问题

时间:2013-10-25 20:53:45

标签: javascript jquery scroll touchpad

我遇到触摸板滚动问题。这就是查看我的网站的方式:click。您可以使用上/下箭头,菜单和鼠标滚轮在此处导航。除了使用触摸板滚动外,一切都很好。当你这样做时,它的解释就像几个鼠标滚轮的滚动。所以你不要从顶部到第二个屏幕,而是到最后一个屏幕。我正在考虑它,我的解决方案是:

  • 检测滚动方向
  • 滚动到下一个/上一个屏幕
  • 停止滚动

但我不知道如何“停止滚动”。谁能帮我? :)

1 个答案:

答案 0 :(得分:0)

好的,我已经想出了如何做到这一点。也许它不是最好的方式,但它的工作原理。代码:

        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,因为它是滚动到next / prev屏幕的时间:)