禁用fullpage.js上的触摸滑动

我正在为单页营销网站使用fullpage.js插件。

我正在使用导航链接跳转到网站周围的场景(所有水平),因此我想禁用触摸/滑动(场景之间)function,因为它会干扰其他触摸元素。

我已经阅读了所有文档,但我无法找到如何实现这一目标。

欢迎任何帮助。 谢谢,杰克。

只需在初始化插件时使用autoScrolling:false选项。 这样,鼠标滚轮将不会滑动,触摸事件也不会。

如果您想保持鼠标滚轮滚动(对于计算机)但禁用触摸事件(触摸设备),那么我建议您以不同的方式为触摸设备初始化插件。 为了做到这一点,我建议你做这样的事情 。

2016年更新:

您可以使用选项responsiveWidthresponsiveHeight以及类fp-auto-height-responsive

这些选项将禁用指定尺寸下的移动设备的autoScrollingfunction。 fullPage.js或online的examples文件夹中提供的examples

您还可以使用responsiveSlides并强制将水平幻灯片转换为响应式的垂直部分。 这可以通过Responsive Slides扩展来完成。

2014年9月更新:


名为$.fn.fullpage.setAllowScrolling方法也可以用于此目的。 它将禁用触摸滚动和鼠标滚动。

2014年6月更新:


autoScrolling:false仅禁用垂直滚动。 如果你想要禁用水平的,那么现在就无法做到。 你需要修改一下插件。

在fullpage.js里面替换了这个:

 function removeTouchHandler() { if (isTablet) { $(document).off('touchstart MSPointerDown'); $(document).off('touchmove MSPointerMove'); } } 

为了这:

 $.fn.fullpage.removeTouchHandler = function (){ if (isTablet) { $(document).off('touchstart MSPointerDown'); $(document).off('touchmove MSPointerMove'); } }; 

然后,当您初始化插件时,在afterRender回调中调用该公共函数,如下afterRender

 $(document).ready(function() { $('#fullpage').fullpage({ afterRender: function(){ $.fn.fullpage.removeTouchHandler(); } }); }); 

不要拨打全名两次。 只需在初始化中添加afterRender函数即可。

setAllowScrolling函数还接受方向的第二个参数,因此以下内容可用于禁用左/右滚动/滑动:

$ .fn.fullpage.setAllowScrolling(false,’left,right’);

截至2017年6月,以前的方法都不适用于我。 我发现有效禁用触摸的最简单方法如下。

在jquery.fullPage.js中,您将找到函数setAllowScrolling

 function setAllowScrolling(value, directions){ if(typeof directions !== 'undefined'){ directions = directions.replace(/ /g,'').split(','); $.each(directions, function (index, direction){ setIsScrollAllowed(value, direction, 'm'); }); } else if(value){ setMouseWheelScrolling(true); addTouchHandler(); }else{ setMouseWheelScrolling(false); removeTouchHandler(); } } 

初始化fullpage时,它会自动调用setAllowScrolling(true) ,触发上面的else if(value)条件。 只需注释掉对addTouchHandler()的调用即可完全禁用它,或添加某种条件来调用它,例如

 var winw = $(window).width(); if (winw > 480){ addTouchHandler(); } 

使用此方法,左右箭头在轻敲时仍然有效,因此仍可以导航水平幻灯片。 应该注意的是使用$.fn.fullpage.setAllowScrolling(false, 'left, right'); 也将禁用箭头。