迁移至Google Advanced Marker库时animation属性失效问题求助
解决AdvancedMarkerElement无法使用animation属性的问题
AdvancedMarkerElement 并未继承旧版 Marker 的 animation 属性,这就是你遇到报错的原因。虽然 google.maps.Animation 枚举仍存在,但它仅适用于旧版的 google.maps.Marker,而非新版的 AdvancedMarkerElement。
要实现标记动画,推荐利用 AdvancedMarkerElement 基于 DOM 的特性,通过 CSS 动画来实现:
- 定义 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; }
- 给自定义标记的 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
相关产品推荐
相关产品推荐

