目标是有一个组件,在这种情况下是一个旋转木马,当用户从左向右移动手指时响应touchmove事件,但不会阻止默认滚动,即使触摸如果用户将手指在y轴上移动超过某个阈值,则会产生相关组件。
或者,更明显的是,我需要在触摸设备上禁用浏览器滚动,直到touchmove甚至表示没问题,然后重新启用它。
尽管进行了几个小时的修补,但我只能完全禁用浏览器滚动或者不能全部禁用它。有条件地禁用似乎不想工作。
基本逻辑是:
我已经在最新版的iPad mini上进行了测试。我发现了以下内容:
在touchstart处理程序中调用preventDefault()会停止该触摸的所有浏览器滚动,在拖动过程中无法重新启用它。
尝试有条理地阻止dragmove处理程序中的默认行为与touchstart处理程序中的preventDefault相同。也就是说,它会阻止拖动,并忽略条件!
拖拉机中的这种情况:
if(Math.abs(MouseMoveDistanceY) < 200){
if(ev.preventDefault){ev.preventDefault();}
}
...永久阻止垂直滚动,即使超出阈值!
在任何情况下,如果满足条件,我如何在触摸设备和拖拉机处理程序中将控制权交给浏览器滚动?像&#34; unPreventDefault()&#34;会很好。除此之外,还有什么想法?
答案 0 :(得分:0)
只是一个想法,因为我不能给你一个直接的答案,所以这更多的只是看一个不同的方法..但你看看改变页面,以便在开启时没有任何实际滚动触摸事件?即/固定高度并添加溢出隐藏。