我正在开发一款地图应用,但我无法一次制作动画标记。我想拥有它,以便在单击新标记时,删除另一个动画。我是一个js noob而且一直在wra。截至目前,我有一个数组中的标记,以便我可以删除动画..但是如何在为另一个设置动画时删除每个其他标记的动画?...下面是我一直在播放的代码与
for (i in markersArray) {
if (markersArray[i].getAnimation() != null) {
markersArray[i].setAnimation(null);
}
if (marker[i].getAnimation() != null) {
marker[i].setAnimation(null);
} else {
marker[i].setAnimation(google.maps.Animation.BOUNCE);
}
}
答案 0 :(得分:1)
您发布的代码似乎很好,如果它适合您,那很好。但是,如果您一次只需要一个动画标记,那么保留最后一个动画标记的变量可能更有效,也更容易。例如,在您的点击事件或添加标记时,您可以执行以下操作:
previous_animation.setAnimation(null);
new_marker.setAnimation(google.maps.Animation.BOUNCE);
previous_animation = new_marker;
答案 1 :(得分:1)
在为每个标记分配一个唯一ID之后,我最终想出了以下代码......像魅力一样工作
for( var i in marker ){
marker[i].setAnimation(null);
if( marker[i].id == item.id ) marker[i].setAnimation(google.maps.Animation.BOUNCE);
}
答案 2 :(得分: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;
}
我更喜欢@Nick Canzoneri风格。修改了一下
答案 3 :(得分: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);
}
};
})