參考博客:https://blog.csdn.net/u014136910/article/details/79218678
https://blog.csdn.net/weixin_41612385/article/details/79352085
以下是我參考大神的方式解決問題
需求:
在地圖模式里面有個可以切換列表和地圖模式,在搜索框里面輸入地址以后,然后點擊地圖的時候要展示出相應的點位。
圖一 圖二
這個是地圖和列表切換的按鈕邏輯
問題:
每次列表都可以正常的查詢到數據,但是再切換回地圖模式的時候發現點跑到左上角去了。
網上找的出現的問題主要是以下幾種:
1、地圖在彈窗里面,會出現此問題。解決方式是先展示再初始化
2、地圖初始化問題,多次加載地圖數據導致的問題
3、地圖瓦片加載不完全的導致的問題。可以監聽地圖加載完以后再去描點居中定位
4、第四種就是我這種是DIV顯示隱藏導致的問題
解決過程:
1、首先考慮的是地圖瓦片的問題。首先去監聽地圖是否完全加載完,等完全加載完以后我在去根據經緯度去居中,但是發現不起效果
2、我先去展示地圖,然后再去加載數據進行描點和居中但是還是不行
3、參考大神的思路一針見血的定位到問題所在:
第一次加載地圖的時候是可以正常居中的,但是我點擊切換列表的時候地圖的DIV是隱藏的,然后再點擊地圖展示隱藏的DIV的時候就會出現此問題。只要在展示完地圖的DIV以后等待一段時間再去描點和居中就好了,如果不等待相當於地圖在頁面的大小還為0的時候,描點就已經描好了,所以才會在左上角
先去展示地圖,然后再等待0.5S的時候再去描點和居中就可以了