3

私はマーカーがいくつかの外部リンクのロールオーバーでバウンスする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/

答えて

7

この問題も同様に発生しました。 MarkerOptionsoptimized: falseまたはdraggable: trueと設定すると、マーカーが点滅してからアニメーション化されます。

非最適化されたマーカー:

// Create a non-optimized marker 
var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(39.107182, -123.501868), 
    map: map, 
    optimized: false // stops the marker from flashing 
}); 

// Bounce once 
marker.setAnimation(google.maps.Animation.BOUNCE); 
marker.setAnimation(null); 

ドラッグ可能マーカー:

// Create a draggable marker 
var draggableMarker = new google.maps.Marker({ 
    position: new google.maps.LatLng(39.107182, -123.501868), 
    map: map, 
    draggable: true // stops the marker from flashing 
}); 

// Bounce once 
draggableMarker.setAnimation(google.maps.Animation.BOUNCE); 
draggableMarker.setAnimation(null); 

あなたはGoogle exampleで見てみるならば、あなたは彼らがdraggable: trueを設定していることがわかります。

+1

これは、ありがとう!あなたは、点滅が最適化の欠如を示すと思うだろうが、そこに行く... – melat0nin

+1

回避策は完璧ではない、まだ動作しません:( –

+0

このソリューションは18ヶ月以上前からです。 Google Maps APIのバージョンです。ソリューションを見つけたら、ご報告ください。 – lazd

関連する問題