问题描述

我的项目对接的地图每次鼠标点击、移入移出都会报
Unable to preventDefault inside passive event listener invocation.
用的绘图工具是js的konva 2D库 创建的地图 。
在这里插入图片描述

在这里插入图片描述
鼠标每次移入此地图画布 ,或者点击画布的时候都会出现该问题。虽然不影响操作,但是对于咱们开发人员来讲却是一个非常头疼的问题,稍有不慎,鼠标经过这个画布都是几十上百条同样的报错,不管是对客户,对公司还是对自己来讲都是一个非常不好的体验。

原因由于 Chrome 想提高浏览器动画渲染帧数,要修改 eventListener 相关接口,出现了遮罩层无法屏蔽滚动动作的情况。

解决方法
卸载 default-passive-events 包 同时 把main.js中 的引入注释掉,// import ‘default-passive-events’
卸载 default-passive-events 包的方法 npm uninstall default-passive-events
不卸载包 直接把main.js 中的 将该包引入的语句注释掉也能达到效果。
// import ‘default-passive-events’

这个问题已经困扰我了两三天了,也试验了很多办法
在样式中加入

* {
  touch-action: pan-x;
}

这个方法也试过并没有解决,也尝试了集中取消监听的方法也没解决,最后查了资料才发现是这个 default-passive-events包的问题。
这是在引用VueKonva 2D 库的时候一起引入的, 希望大家再用这个js的画图工具的时候遇到此问题可以避开。
注意··注意··注意
是default-passive-events包的问题 ,把这个去掉就可以解决这个鼠标移入 或者点击画布出现一堆Unable to preventDefault inside passive event listener invocation.报错的问题了。
解决后:
在这里插入图片描述
再也不会出现那个令人头疼的问题了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐