在做 H5 开发时要嵌入百度地图,点击地图获取位置,但在 body 发生滚动时,地图的实际点击位置会向下偏移,偏移距离就是 body 滚动距离。
是因为什么呢?
百度地图 jsapi 是根据 body 的 scrollTop 和 scrollLeft 获取位置,如果 body 发生了滚动,那么点击地图的位置和地图响应的实际位置是有偏移的,会偏移滚动的距离。
解决方法:
1、不让 body 滚动;
2、定位前滚动到顶部,定位完滚回原位置;
3、利用 jsapi 的 pointToPixel 和 pixelToPoint 纠正偏移(较麻烦,没试过);
4、用高德地图(高德没这个问题);
5、欢迎补充。。