0

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

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

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

4

1 回答 1

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

于 2013-10-29T22:40:24.283 回答