(解决)在openlayers中,使用滚轮缩放地图,控制台报错Unable to preventDefault inside passive event listener invocation.

网上各种稀奇古怪的解法都有:

1、卸载 default-passive-events  插件的,这种我刚卸载完,直接项目崩了,老老实实重新装回去,重启项目恢复了;

2、利用css方法,pointer-events: none;  在你的css里面添加这玩意,好嘛,至少在这里没啥用

3、创建对象的事件监听,关闭事件的默认行为 也就是这样的:

window.addEventListener("事件名称", handler, { passive: false });但是前提是这个事件是你自己监听的你才能去控制默认行为

详细可以看下这个朋友的web前端:Unable to preventDefault inside passive event listener invocation的产生原因及解决_zctsir的博客-CSDN博客

我的解决方案:

1、在openlayers实例化的时候,在里面加一行代码,目的就是贼暴力,我不让你用鼠标滚轮缩放好了吧,这样就没有报错了(条件允许就用):interactions: defaults({mouseWheelZoom:false})

附截图:

 2、根本上解决,但是我不知道是否回存在弊端(目前没发现,因为我只是将他的默认行为关闭了),找vue项目引入的node_modules 里面 文件: ol/interaction/MouseWheelZoom.js  这个js文件里面搜索 wheelEvent.preventDefault()   直接注释掉它,看的烦。

3、综上,基本所有的 Unable to preventDefault inside passive event listener invocation.报错问题都可以用这些方法尝试解决,但是个人认为从事件角度角度出发去解决比较好,谁引起的让谁去关闭。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值