百度地图Map内部子元素阻止事件冒泡(map缩放地图影响内部元素滚轮缩放事件)

在百度地图上滚动滚轮自动触发地图缩放事件,在引用自定义覆盖物CustomOverlay上滚动滚轮也会自动触发地图缩放事件,因此需要阻止父元素的事件冒泡。(使用到的技术react+react-bmapgl)

问题代码如下
<Map
ref={(ref: any) => {
  map = ref ? ref.map : null;
  map?.addEventListener('tilesloaded', () => {
    document.querySelector('.coverDiv')?.remove();
  });
  if (isLogin) {
    map?.setCenter('武汉市')
  }
}}
>
	<CustomOverlay
       map={map}
       zIndex={999}
       position={{
         lng: Detial?.longitude,
         lat: Detial?.latitude,
       }}
	      >
	      <div className='overflow-scroll'>需要滚动的内容</div>
	</CustomOverlay>
</Map>
当CustomOverlay内的内容过多添加滚动效果无法使用滚轮滚动。需要阻止map订阅的whell事件冒泡
<div className='overflow-scroll-heigt-340' ref={(ref: any) => {
   if (ref) {
     ref?.addEventListener('wheel', (e: any) => {
       e.stopPropagation();
     })
   }
 }}>需要滚动的内容</div>
核心思路,拿到需要滚动的元素,添加wheel事件,阻止事件冒泡e.stopPropagation();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值