Я построил карту google, где маркеры отскакивают от опрокидывания некоторых внешних ссылок. Я создал эту короткую функцию, чтобы перебросить маркер:Карты Google - маркеры мигают перед отскоком onmouseover
function makeBounce(marker) {
marker.setAnimation(google.maps.Animation.BOUNCE);
setTimeout(function(){ marker.setAnimation(null); }, 750);
}
, и я использую это, чтобы выполнить его:
<a onmouseover="javascript:map.panToBounds(bounds);makeBounce(markersArray[1]);" href="javascript:google.maps.event.trigger(markersArray[1], 'click');">Marker name</a>
Что я заметил, что как раз перед маркерами отказов они мигают , Это почти незаметно, но этого достаточно, чтобы быть очень раздражающим (особенно потому, что собственный блог Google, создающий отскоки от маркеров, очень плавный: http://googlegeodevelopers.blogspot.com/2010/12/map-markers-they-move.html).
Я создал здесь скрипт JS, который демонстрирует его: http://jsfiddle.net/RmDuz/ (сверните по синим ссылкам, чтобы увидеть проблему).
Я пробовал в FF9 и Chrome 16, и проблема в обоих.
Любые мысли?
Проблема заключается в том, что изображение маркера динамически загружается непосредственно перед отказом, потому что в Chrome я вижу поле «нет изображения» перед тем, как маркер снова появляется, а затем отскакивает.
EDIT: Я никогда изменил код, чтобы сделать использование карты API слушателем вместо яваскрипта функции, в надежде, что код API может быть немного более эффективным, но никакой радости :(
google.maps.event.addListener(marker, 'dblclick', (function(marker, i) {
return function() {
marker.setAnimation(google.maps.Animation.BOUNCE);
setTimeout(function(){ marker.setAnimation(null); }, 750);
}
})(marker, i));
Я использую DblClick, потому что я не хочу MouseOver, что означало бы анимация была вызвана, когда маркеры перевернулась я только хочу анимация срабатывает, когда внешние ссылки перевернулась:.
<a onmouseover="javascript:google.maps.event.trigger(markersArray[1], 'dblclick');">Link name</a>
Я обновил JS Fiddle, чтобы отразить это: http://jsfiddle.net/RmDuz/1/
Именно так, спасибо! Вы могли бы подумать, что мигание будет означать отсутствие оптимизации, но там вы идете ... – melat0nin
обходной путь не идеальный, до сих пор не работает :( –
Это решение более 18 месяцев назад. Возможно, в новой версии версии API Карт Google. Сообщите, если вы найдете решение! – lazd