触摸板滚动jQuery的问题



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

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

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

好的,我已经想出了如何做到这一点。也许这不是最好的方法,但它有效。代码:

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

相关内容

  • 没有找到相关文章

最新更新