谷歌地图(JS-v3):如何使我的标记“从天而降”

6

我曾经看到过一个演示,使用Google Maps JavaScript API v3创建了一个效果,似乎你的地图标记图标从天空落下并着陆在地图上。

我已经搜索了很多,包括查看API,但找不到这个例子。

有没有人对如何实现这个用例有更多的信息?

谢谢

5个回答

2

在最新的3.3版本中,只需在创建标记时添加属性列表中的以下内容:Animation: google.maps.Animation.DROP。它会自动完成所有操作。弹跳也是可能的,但我发现如果没有一种简单的方法使其仅弹跳一次并停止,那么它将带来更多麻烦。


2

按照giogiga的建议,只需将OverlayView扩展一下可能是最安全的方法,但显然不是最简单的方法,因为Marker内置了很多东西,如图标、阴影和可拖动性。

只扩展Marker类的想法确实很诱人,但这个类是不透明的——它不会显示其内部细节,例如您不能轻松访问底层DOM元素,而这正是您需要用来对标记进行动画处理的。您可以通过setPosition来搞出点东西,但结果将是脆弱且容易出错的。或者,您可以钻进底层DOM节点,但这样您的代码就更加脆弱了。

因此,重新实现Marker仍然是最好的方法。



0

我对Google API不是很了解,但我知道你可以只用普通的jQuery来做到这一点。


那不起作用。请参考此帖子以了解原因:http://stackoverflow.com/questions/1678412/jquery-google-maps-bounce-using-jquery-bounce-package - teddyk
1
嗯...我在那篇帖子上没有看到任何关于它不能工作的内容... - Entity
1
我无法链接到StackOverflow的评论,但该页面上显示:“这在V3中不起作用,只能在V2中使用。V3没有弹性,实际上标记甚至不会从页面上拾取。” - Chris Drackett于6月29日21:34 - teddyk

0
你应该实现自定义标记类,继承 google.maps.OverlayView
基本上,这相当于实现 3 个方法:onAdd/onRemove(这些方法是启动动画的好选择)和 draw(它应该只更新标记位置)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接