js百度地圖鼠標(biāo)滾輪縮放導(dǎo)致地圖中心點偏移問題
一、問題
帶滾動條的彈窗中的地圖正常顯示,滾輪縮放位置發(fā)生偏移,放大時位置是靠上偏移的,縮小時位置是靠下偏移的, 高德地圖、騰訊地圖不存在此問題,百度地圖存在
二、問題分析
是由于百度地圖默認(rèn)定位是取瀏覽器文檔對象的scrollTop=0的位置, 是由body中心為中心點的, 如果html頁面(或者是彈窗)出現(xiàn)滾動條,那么地圖的中心位置其實是有偏移的,偏移的距離就是滾動條滾動的距離。這個時候縮放就會出現(xiàn)上述偏移的情況。
三、解決方法
1.禁止?jié)L輪縮放, 添加縮放控件
禁止?jié)L輪縮放, 添加百度地圖縮放控件
mapCanvas = new BMap.Map("mapBox", { enableMapClick: false }); var point = new BMap.Point(116.379341, 39.938776); mapCanvas.centerAndZoom(point, 15); //彈窗中帶有滾動條 縮放會存在中心點偏移問題 mapCanvas.disableScrollWheelZoom(); //禁止鼠標(biāo)滾輪縮放 mapCanvas.addControl(scaleCtrl); //平移縮放控件 mapCanvas.addControl(new BMap.NavigationControl()); var scaleCtrl = new BMap.ScaleControl(); // 添加比例尺控件
效果:
添加縮放效果
2.調(diào)節(jié)滾動條
在彈窗打開的時候,檢查滾輪位置是否在最頂部,如果不在的話,調(diào)整到最頂部,然后在彈窗關(guān)閉的時候,恢復(fù)到最初的位置即可。
解決方法可參考:
調(diào)節(jié)滾動條位置-解決方案
總結(jié)
到此這篇關(guān)于js百度地圖鼠標(biāo)滾輪縮放導(dǎo)致地圖中心點偏移問題的文章就介紹到這了,更多相關(guān)js百度地圖縮放內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一種新的javascript對象創(chuàng)建方式Object.create()
這篇文章主要介紹了一種新的javascript對象創(chuàng)建方式Object.create(),感興趣的小伙伴們可以參考一下2015-12-12微信小程序自定義組件的實現(xiàn)方法及自定義組件與頁面間的數(shù)據(jù)傳遞問題
這篇文章主要介紹了微信小程序自定義組件的實現(xiàn)方法及自定義組件與頁面間的數(shù)據(jù)傳遞 ,需要的朋友可以參考下2018-10-10JavaScript模擬實現(xiàn)"雙11"限時秒殺效果
每年的“雙11”啊,都是大家的剁手節(jié)。大家都在晚上12點,捧著手機看著倒計時,在他倒數(shù)到0的時候瘋狂點擊下單??墒悄阌袥]想過限時秒殺是怎么實現(xiàn)的呢?本文將為你揭秘如何用JavaScript實現(xiàn)限時秒殺,快來了解一下吧2022-03-03