Javascript 设置谷歌地图反弹标记的动画
我试图在我的标记上实现反弹动画,我遵循了相关文档,并且只对阵列中的第一个标记设置了动画。我尝试将标记上的位置调用到事件侦听器中,但这似乎不起作用。有什么建议吗 这是我的密码:Javascript 设置谷歌地图反弹标记的动画,javascript,google-maps-api-3,knockout.js,Javascript,Google Maps Api 3,Knockout.js,我试图在我的标记上实现反弹动画,我遵循了相关文档,并且只对阵列中的第一个标记设置了动画。我尝试将标记上的位置调用到事件侦听器中,但这似乎不起作用。有什么建议吗 这是我的密码: for(var i = 0; i < locationArray().length; i++){ var locations = locationArray()[i].location; var title = locationArray()[i].title; var marker = new
for(var i = 0; i < locationArray().length; i++){
var locations = locationArray()[i].location;
var title = locationArray()[i].title;
var marker = new google.maps.Marker({
position: locations,
map: map,
title: title,
icon: defaultMarker,
animation: google.maps.Animation.DROP
});
google.maps.event.addListener(marker,'click', function(){
if (marker.getAnimation() !== null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
console.log(marker);
});
for(var i=0;i
这是一个常见错误。您可能认为循环会将单击事件绑定到每个标记,但实际上并非如此。由于单击事件发生在创建标记之后,因此它仅适用于最后一个标记。您必须将必要的参数传递给函数并在其中创建标记
顺便说一句,locationarray在这里不是一个函数,只是一个数组
工作小提琴:
var映射;
google.maps.event.addDomListener(窗口,“加载”,函数(){
var map=new google.maps.map(document.getElementById(“map_div”){
中心:新google.maps.LatLng(33.808678,-117.918921),
缩放:14,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
函数createMarker(locationArray){
var位置=locationArray.location;
var title=locationArray.title;
var marker=new google.maps.marker({
位置:地点,,
地图:地图,
标题:标题,,
动画:google.maps.animation.DROP
});
google.maps.event.addListener(标记'click',函数(){
if(marker.getAnimation()!==null){
marker.setAnimation(null);
}否则{
setAnimation(google.maps.Animation.BOUNCE);
}
});
}
locationArray=[
{地点:新google.maps.LatLng(33.808678,-117.918921),标题:“1”},
{地点:新google.maps.LatLng(33.818038,-117.928492),标题:“2”},
{地点:新google.maps.LatLng(33.80333,-117.915278),标题:“3”}
];
对于(var i=0;i