2011-06-29 9 views
3

マップアプリケーションで作業していますが、マーカーを一度にアニメーション化できません。新しいマーカーをクリックすると、もう一方のアニメーションが削除されるようにしたいと思います。私はjs noobであり、私の頭を悩ましています。今のところ、アニメーションを取り除くことができるように、配列内にマーカーがあります。しかし、別のマーカーのアニメーションを設定するとき、他のマーカーのアニメーションをすべて削除するにはどうしたらいいですか?One Marker Animation一度にGoogleマップApi 3

答えて

1

私は、各マーカーに固有のIDを割り当てた後、次のコードを考え出すことになった...のように働きました魅力

for(var i in marker){ 
marker[i].setAnimation(null); 
if(marker[i].id == item.id) marker[i].setAnimation(google.maps.Animation.BOUNCE); 
} 
1

あなたが投稿したコードはうまくいくようです。ただし、一度に1つのマーカーのみをアニメーション化したい場合は、最後のアニメーションマーカーの変数を保持する方が効率的で簡単です。たとえば、あなたのクリックイベントにしたり、マーカーを追加するとき、あなたはこのような何かを行うことができます:

previous_animation.setAnimation(null); 
new_marker.setAnimation(google.maps.Animation.BOUNCE); 
previous_animation = new_marker; 
+0

それはまさに私のために動作しません...私は少しそれを変更した: '(もし!マーカー[i]を.getAnimation()= NULL){ ため(私はmarkersArray中){ markersArray [i] .setAnimation(null); \t} } else { marker [i] .setAnimation(google.maps.Animation.BOUNCE); } '既にアニメーション化されているマーカーをクリックすると、それらはすべて停止しますが、それでも目的の効果は得られません。 – Jay

+0

少し近づいています...私はどのように挿入することができますか?次のコードの 'for(i in markersArray){ markersArray [i] .setAnimation(null); \t} // その後、ここでもし\t 行くべき切り替える(マーカー[i]を.getAnimation()!= NULL){ }他{ マーカー[i]を.setAnimation(google.maps.Animation.BOUNCE)。 } ' – Jay

1
var new_marker = this; 
if(prev_marker) { 
    if (prev_marker.getAnimation() != null) {    
     prev_marker.setAnimation(null);        
     new_marker.setAnimation(google.maps.Animation.BOUNCE); 
     prev_marker = new_marker; 
    } 
} else { 
    new_marker.setAnimation(google.maps.Animation.BOUNCE); 
    prev_marker = new_marker; 
} 

iは@Nick Canzoneriスタイルを好みます。それを少し修正しました

0

これは私が働いていることです、私はグローバル変数のマーカーを持っています。いつでも私のマーカーにアクセスできます。

google.maps.event.addListener(marker, 'click', function(event) { 
    $("input#pickup-"+ marker.id +"").prop('checked', true); 

    for (var i = window.markers.length - 1; i >= 0; i--) { 
     window.markers[i].setAnimation(); 
     if(window.markers[i].id === this.id) { 
      marker.setAnimation(google.maps.Animation.BOUNCE); 
     } 
    }; 

}) 
関連する問題