在百度地图上滚动滚轮自动触发地图缩放事件,在引用自定义覆盖物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>