You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Map隐藏Marker后重新显示丢失BOUNCE动画问题求助

解决Google Map Marker隐藏后再显示时BOUNCE动画消失的问题

这个问题我做项目时也碰到过,核心原因是:当你通过setVisible(false)隐藏Marker后,Google Maps的Marker实例会重置自身的动画状态,再次调用setVisible(true)显示时,不会自动恢复之前的BOUNCE动画。下面给你两种实用的解决办法:

方法一:显示Marker时直接重新设置动画

这是最简单直接的方式,在点击显示按钮、调用setVisible(true)之后,手动重新为Marker设置BOUNCE动画。结合你的代码,修改后的示例如下:

var latlng = new google.maps.LatLng(21.0394475,105.7540192);
var marker;
var map;

function initMap() {
  // 初始化地图
  map = new google.maps.Map(document.getElementById('map'), {
    zoom: 15,
    center: latlng
  });
  
  // 创建带BOUNCE动画的Marker
  marker = new google.maps.Marker({
    position: latlng,
    map: map,
    animation: google.maps.Animation.BOUNCE
  });
}

// 隐藏按钮点击事件
$('#hideBtn').on('click', function() {
  marker.setVisible(false);
});

// 显示按钮点击事件
$('#showBtn').on('click', function() {
  marker.setVisible(true);
  // 重新设置BOUNCE动画
  marker.setAnimation(google.maps.Animation.BOUNCE);
});

// 页面加载完成后初始化地图
$(document).ready(function() {
  initMap();
});

方法二:保存动画状态,显示时恢复

如果你的Marker可能有多种动画切换需求,或者不想每次都硬编码动画类型,可以在隐藏Marker前先保存当前的动画状态,显示时再恢复:

var latlng = new google.maps.LatLng(21.0394475,105.7540192);
var marker;
var map;
var currentMarkerAnimation; // 用于保存当前动画状态

function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    zoom: 15,
    center: latlng
  });
  
  marker = new google.maps.Marker({
    position: latlng,
    map: map,
    animation: google.maps.Animation.BOUNCE
  });
  // 初始化时保存初始动画
  currentMarkerAnimation = marker.getAnimation();
}

// 隐藏按钮点击事件
$('#hideBtn').on('click', function() {
  // 隐藏前保存当前动画
  currentMarkerAnimation = marker.getAnimation();
  marker.setVisible(false);
});

// 显示按钮点击事件
$('#showBtn').on('click', function() {
  marker.setVisible(true);
  // 如果之前有保存的动画,就恢复
  if (currentMarkerAnimation) {
    marker.setAnimation(currentMarkerAnimation);
  }
});

$(document).ready(function() {
  initMap();
});

两种方法都能解决你的问题,第一种适合需求简单的场景,第二种更灵活,能适配多种动画切换的情况。

内容的提问来源于stack exchange,提问作者TungHarry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:21:27