私はマーカーがいくつかの外部リンクのロールオーバーでバウンスする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 Fiddleを作成しました:http://jsfiddle.net/RmDuz/(問題を見るために青いリンクをロールオーバー)。
私はFF9とChrome 16で試してみましたが、問題は両方にあります。
どのような考えですか?
問題は、マーカが現れる直前に「画像なし」ボックスが表示されるため、バウンスの直前に動的に(再)読み込まれているように見えます。
編集:私は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));
で、代わりにjavascript関数のマップのAPIリスナーを利用するコードを変更しました
私はマーカーがロールオーバーされたときにアニメーションがトリガされた意味しますマウスオーバーし、したくないので、私はDBLCLICKを使用しています、私は唯一の外部リンクがロールオーバーされたときにアニメーションがトリガーとします。
<a onmouseover="javascript:google.maps.event.trigger(markersArray[1], 'dblclick');">Link name</a>
私はこれを反映するためにJSフィドルを更新しました:http://jsfiddle.net/RmDuz/1/
これは、ありがとう!あなたは、点滅が最適化の欠如を示すと思うだろうが、そこに行く... – melat0nin
回避策は完璧ではない、まだ動作しません:( –
このソリューションは18ヶ月以上前からです。 Google Maps APIのバージョンです。ソリューションを見つけたら、ご報告ください。 – lazd