【前端】如何解决移动端的滑动事件总是出现无法侦听被动事件?

使用 swiper.js jquerymobile.js 等移动端js库的时候,如果使用了滑动事件,不时会看到报错:“
Unable to preventDefault inside passive event listener due to target being treated as passive”。但奇怪的是脚本运行正常,而且在不同的库和项目中我都能看见这种情况,我觉得不是个例。

所以我想问一下,出现这个问题通常是什么原因,各位又是如何解决、排查这个问题的?

回答

如图所示
【前端】如何解决移动端的滑动事件总是出现无法侦听被动事件?

而这些库也用到了这个咯。所以你在里面写preventDefault方法都是无效的
证据如下
【前端】如何解决移动端的滑动事件总是出现无法侦听被动事件?

css中加上这句* { touch-action: none; }一般就可以了

遇到了和你一样的问题,没人来回答啊?
我的代码是:

<div class="demo">

<div>点击这里</div>

</div>

document.addEventListener('touchmove', function(event) {

var e = event||window.event;

var p = event.target.closest('.demo');

if (!p) {

e.preventDefault();

}

},false);

错误:

Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/...

在swiper的初始项里面加上passiveListeners: false,即可,具体搜一下passiveListeners

直接加this.addEventListener('mousewheel', _onWheel,{ passive: false });

以上是 【前端】如何解决移动端的滑动事件总是出现无法侦听被动事件? 的全部内容, 来源链接: utcz.com/a/78730.html

回到顶部