【问题标题】:Window scrolls without triggering touchmove窗口滚动而不触发 touchmove
【发布时间】:2017-03-22 17:47:00
【问题描述】:
我正在触摸设备上开发这个 AngualarJS 应用程序,并且有一个地方我通过在 touchmove 上附加处理程序来禁用滚动。但是,我已经测试了该设备,并且可以验证当屏幕滚动时不一定会触发 touchmove - 只有 touchstart 和 touchend 也可以触发。诀窍是“以非常轻微的向上拖动动作快速在屏幕上轻敲一点”。
我还能如何禁用滚动?注意:我不能 e.preventDefault touchstart 事件,因为在禁用滚动时我需要它来做其他事情。谢谢!
【问题讨论】:
标签:
javascript
jquery
angularjs
【解决方案1】:
在我的视口中,禁用滚动有很多方法:
-
e.preventDefault() 但是这个你不允许
- 使用 CSS
如何让一个地方开始滚动?有两个dom:scroll-wrapper & scroll-area
-
scroll-area 尺寸大于 scroll-wrapper
-
scroll-wrapper 有 overflow: scroll
所以,停止区域滚动:
- 它们的大小相同
-
overflow: hidden(touchmove监听器改变CSS位置可以模仿滚动)
现在,你想禁用一个区域的滚动。也许你可以使用 CSS 来做到这一点。
希望我能帮到你。