常常在chrome發現一些奇怪的現象,工作上會接觸到一些地圖相關的東西,在windows7的chrome拖拉map時,會發現某些marker會漂移,而且在每次會漂移的marker,都不一定是同一個,有點像是random。並且漂移時,是沒辦法click(css的pointer也指標消失了),ipad上的safari也有相同問題,但是同樣的在linux上的chrome卻不會有此現象,於是就試了一下google map,發現在windows7上是正常的,於是就把left和top,改用translate取代,發現就可以正常顯示了。
以下html結構:
<div class="container" style="position:relative;overflow:hidden;"> <div id="dragContainer" style="left:101px;top:25px;position:absolute;"> <div class="map-image" style="position:absolute;"> <img src="..." style="position:absolute;top:0px;left:0px;"/> <img src="..." style="position:absolute;top:256px;left:0px;"/> <img src="..." style="position:absolute;top:512px;left:0px;"/> .... <div> <div class="overlay" style="position::absolute;"> <div style="width:25px;height:25px;position:absolute;left:50px;top:50px;cursor:pointer;"> <img src="..." style="width:25px;height:25px;" /> </div> ... </div> </div> </div>
實際上在移動的是dragContainer,map-image是顯示地圖圖片,overlay則是顯示相關marker。