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

迁移至Google Advanced Marker库时animation属性失效问题求助

解决AdvancedMarkerElement无法使用animation属性的问题

AdvancedMarkerElement 并未继承旧版 Marker 的 animation 属性,这就是你遇到报错的原因。虽然 google.maps.Animation 枚举仍存在,但它仅适用于旧版的 google.maps.Marker,而非新版的 AdvancedMarkerElement。

要实现标记动画,推荐利用 AdvancedMarkerElement 基于 DOM 的特性,通过 CSS 动画来实现:

  1. 定义 CSS 动画(以弹跳动画为例)
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-30px);
  }
  60% {
    transform: translateY(-15px);
  }
}

.marker-bounce {
  animation: bounce 2s infinite;
}
  1. 给自定义标记的 DOM 元素添加动画类,再传入 AdvancedMarkerElement
// 给你的自定义图标元素添加动画类
imageIcon.classList.add('marker-bounce');

// 创建AdvancedMarkerElement,无需animation属性
newMarker = new google.maps.marker.AdvancedMarkerElement({
    position: markerOpposto,
    map: map,
    content: imageIcon,
    title: "New position"
});

如果需要控制动画的启停,可以通过添加/移除 CSS 类来实现:

// 停止动画
imageIcon.classList.remove('marker-bounce');

// 重新启动动画
imageIcon.classList.add('marker-bounce');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:02:06