大致代码如下
$el.on('touchmove',(event) => {
if (statement) {
event.preventDefault();
}
});
如果第一次 touchmove 事件发生的时候满足了if条件,那么没有问题。
如果第一次 touchmove 事件不满足if条件,而在用户滑动了一会以后才满足这个if条件,这个event.preventDefault()
不会生效。
请问该怎么解决……
大致代码如下
$el.on('touchmove',(event) => {
if (statement) {
event.preventDefault();
}
});
如果第一次 touchmove 事件发生的时候满足了if条件,那么没有问题。
如果第一次 touchmove 事件不满足if条件,而在用户滑动了一会以后才满足这个if条件,这个event.preventDefault()
不会生效。
请问该怎么解决……
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
因为在chrome,或者说再webkit核浏览器里,当你浏览器在一个滚动的状态时,touchmove的cancelable属性被默认置为false,所以preventDefault是不会生效的。
所以要么你在start的时候就阻止,要么就换一种方式去达到你的需求。