2013-03-14 27 views
1

我嘗試在變焦時改變地圖的光標。如果您不移動鼠標,則更改不可見。如果你移動它,那麼光標就會改變。您可以測試是在這裏:谷歌地圖光標不變

http://tinkerbin.com/ENHFSmVR

如何重現:用鼠標滾輪放大,而不是移動鼠標。光標應該改變,但不會。移動鼠標。光標被改變。

如果您檢查html,您將看到有一個帶有遊標屬性的內聯樣式的div。該遊標屬性不會改變,除非你移動鼠標。

<!DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map-canvas { height: 100% } 
    </style> 
    <script type="text/javascript" 
     src="https://maps.googleapis.com/maps/api/js?key=&sensor=false"> 
    </script> 
    <script type="text/javascript"> 
     var odd = true; 

     function initialize() { 
     var mapOptions = { 
      center: new google.maps.LatLng(-34.397, 150.644), 
      zoom: 8, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map-canvas"), 
      mapOptions); 

     google.maps.event.addListener(map, "zoom_changed", function(event) { 
      if (odd) { 
      map.setOptions({ draggableCursor: 'crosshair', 
         draggingCursor: 'crosshair'}); 
      odd = !odd; 
      } else { 
      map.setOptions({ draggableCursor: 'move', 
         draggingCursor: 'move'}); 
      odd = !odd; 
      } 

     }); 
     } 
     google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 
    </head> 
    <body> 
    <div id="map-canvas"/> 
    </body> 
</html> 
+0

只是我注意到一個非常快速的事情,你在哪裏檢查不是奇怪的,在這兩種情況下,你實際上將它設置爲不奇怪。如果其中一個不是真的? – Rafe 2013-03-14 20:12:56

+0

也許這個變量的名稱是不正確的:每次代碼運行時,它都會被翻轉(如果它是假的,它將變爲true,如果它爲true,則變爲false)。 – GoTo 2013-03-14 20:46:34

回答

1

這看起來是由設計:

draggableCursor

的名稱或光標鼠標懸停在一個可拖動地圖時顯示的URL。

draggingCursor

的名稱或光標的地圖被拖動時顯示的URL。

這兩種情況似乎都需要鼠標移動(鼠標移動和被拖動都是動詞,所以我會假設鼠標在任一條件下移動時)。

此外,它似乎在Chrome中工作(延遲響應)。

+1

你可能對Erik的語義是正確的,但這不是它假設的工作方式。當我爲可拖動的地圖更改'draggableCursor'時,更改應該立即可見。爲什麼有人不想要那個?問題在於,當我更改光標時,我還將地圖居中放置在用戶點擊的位置(不像問題中),因此用戶不必移動鼠標。這就是爲什麼這個bug非常煩人。任何想法如何發送錯誤報告? – GoTo 2013-03-14 20:55:19