【问题标题】:Problems with touchpad scrolling jQuery触摸板滚动jQuery的问题
【发布时间】:2013-10-25 20:53:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript jquery scroll touchpad


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多