2013-03-14 137 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