2013-03-14 2 views
1

Я пытаюсь изменить курсор для карты при изменении масштаба. Это изменение не отображается, если вы не перемещаете мышь. Если вы переместите его, то курсор изменится. Вы можете проверить здесь:Карт Google Maps не изменяется

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

+0

Возможно, имя не подходит для этой переменной: каждый раз, когда выполняется код, он получает щелчок (он становится истинным, если он является ложным и ложным, если он является истинным). – GoTo

ответ

1

Это выглядит дизайн:

draggableCursor

Имя или URL курсора, чтобы отобразить при наведении на перетаскиваемом карте.

draggingCursor

Название или URL курсора для отображения, когда карта тащат.

В обоих случаях требуется, чтобы мышь двигалась (мышь и перетаскивание - оба глагола, поэтому я предполагаю, что мышь перемещается в любом состоянии).

Кроме того, он работает в Chrome (с задержкой ответа).

+1

Возможно, вы правы в семантике Эрика, но это не так, как это должно работать. Когда я изменяю «draggableCursor» для перетаскиваемой карты, это изменение должно быть видимым немедленно. Почему кто-то не хочет этого? Проблема в том, что по мере того, как я меняю курсор, я также центрирую карту туда, где пользователь нажал (не так, как в вопросе), и поэтому пользователю вообще не нужно перемещать мышь. Вот почему эта ошибка довольно раздражает. Любая идея, как отправить отчет об ошибке? – GoTo

Смежные вопросы