Fullpage.js选项normalScrollElementTouchThreshold有什么作用?
我不能完全理解这个选项以及它是如何工作的,该文档提供了一个解释,但在实践中这是一个什么样的例子?
来自docs:
normalScrollElementTouchThreshold :(默认值为5)定义html节点树上的跃点数阈值Fullpage将测试
normalScrollElements
是否匹配,以允许触摸设备上的div上的滚动function。 (例如:normalScrollElementTouchThreshold: 3
)
当mouseover
元素通过DOM结构向下传播时,选项normalScrollElements
在桌面浏览器上非常容易。
对于触摸设备,这种实现有点复杂,而且是normalScrollElementTouchThreshold
参与的地方。 touchstart
或touchmove
事件不会以这种方式传播。
当识别出触摸事件时,将返回DOM结构中位于手指下方的最深元素。
这意味着,如果您的站点上有一个灯箱弹出插件,并且您希望它使用选项normalScrollElements
,那么如果您在其中有divs
或paragrphas,那么将返回这些元素而不是您的灯箱容器您正在应用normalScrollElements
。
因此,对于插件来说,在触摸它时它是否是要忽略的元素,它必须在DOM结构中检查父元素。 默认情况下,它最多可检查5个父项。 但是如果需要你可以改变它。
为了更好地说明它,想象一下这种情况:
My Title Box1 Box1
初始化:
$('#fullpage').fullpage({ normalScrollElements: '.myLightBox', });
如果您在box
元素上触摸lightobx,则box
元素将返回到插件touchstart
或touchmove
事件。
正如您已将normalScrollElements
设置为normalScrollElements
myLightBox
,它会向上或向下滚动该部分,因为myLightBox
与box
元素不同。
为了解决这个问题,插件在DOM结构中上升了5个级别,将它们与normalScrollElements
的值进行normalScrollElements
,因此它会复选框,然后是body
,最后是myLightBox
,这将导致插件忽略对该元素的自动滚动。