2013-02-05 155 views
5

我正在构建一个移动网站,并且我有一个幻灯片放映图像,允许水平滑动图像。我使用的JavaScript库是bxslider。但是,如果用户触摸幻灯片并希望向上/向下滚动页面,则幻灯片会阻止垂直滚动,因此必须触摸该站点的另一部分。水平滑动手势和垂直页面滚动

可能有人请告诉我,我怎么可能保持启用垂直滚动(即,不允许幻灯片阻断正常滚动?)

谢谢!

+0

有人已经打开了一个关于此问题的问题(https://github.com/wandoledzep/bxslider-4/issues/82)。在那里跟进进展可能是最好的。 – Mottie

回答

3

试试这个,更改bxslider库FN的onTouchMove这个

 var onTouchMove = function (e) { 
     if (slider.settings.mode != 'fade') { 
      var orig = e.originalEvent; 
      var value = 0; 
      // if horizontal, drag along x axis 
      if (slider.settings.mode == 'horizontal') 
      { 
       var hchange = orig.changedTouches[0].pageX - slider.touch.start.x; 
       var vchange = orig.changedTouches[0].pageY - slider.touch.start.y; 

       if(Math.abs(hchange)>20 && Math.abs(hchange)>Math.abs(vchange)) 
       { 
        value = slider.touch.originalPos.left + hchange; 
        setPositionProperty(value, 'reset', 0); 
        e.preventDefault(); 
       } 
       // if vertical, drag along y axis 
      } else{ 
       e.preventDefault(); 
       var change = orig.changedTouches[0].pageY - slider.touch.start.y; 
       value = slider.touch.originalPos.top + change; 
       setPositionProperty(value, 'reset', 0); 
      } 

     } 
    } 
1

如果您转到这个选项页的bxslider网站,搜索preventDefaultSwipeX和preventDefaultSwipeY

这些都是你是什么寻找。