用于删除谷歌地图标记的反向动画
Reverse animation for Google Map marker removal?
我知道我可以在谷歌地图上对标记的"添加"进行动画处理,就像 https://developers.google.com/maps/documentation/javascript/overlays#MarkerAnimations
无论如何,我可以做反向动画来从地图中删除标记吗?我希望它在移除标记时飞回地图顶部......这可能吗?
这是我到目前为止的删除代码(只是将其从地图中删除,没有动画):
// TODO figure out if there is a way to animate this removal, like the add
$.contextualMap.prototype.removeMarker = function(m) {
m.mapMarker.setMap(null);
m.mapMarker = null;
};
由于google.maps.Animation不支持拖放的反向动画,因此您需要编写自己的脚本来对标记进行动画处理。
你可以写这样的东西:
function removeMarkerWithAnimation(map, marker){
(function animationStep(){
//Converting GPS to World Coordinates
var newPosition = map.getProjection().fromLatLngToPoint(marker.getPosition());
//Moving 10px to up
newPosition.y -= 10 / (1 << map.getZoom());
//Converting World Coordinates to GPS
newPosition = map.getProjection().fromPointToLatLng(newPosition);
//updating maker's position
marker.setPosition( newPosition );
//Checking whether marker is out of bounds
if( map.getBounds().getNorthEast().lat() < newPosition.lat() ){
marker.setMap(null);
}else{
//Repeating animation step
setTimeout(animationStep,10);
}
})();
}
这是演示:
我的想法:
- 创建一个飞行标记别针的动画 GIF,然后消失。
- 在标记删除事件上,交换
icon
以显示 GIF - 由于您创建了 GIF,因此您应该知道动画时间长度。然后,使用此值设置超时以调用 setMap(null)
它可能会阻止事件传播,这是许多可能的缺点之一。
相关文章:
- 如何设置html元素填充的动画
- Javascript更改图标
- 如何使用动画实现纸张推车
- 如何在生成下载文件时显示加载动画
- 如何在打开层3中的堇青石之间设置矢量图标的动画
- CSS 图标旋转 鼠标关闭时的第二个动画
- 动画自定义电池填充图标
- 动画加载图标在 jquery 显示上没有动画
- 使用 jQuery 制作动画图标
- jQuery图标行上的波浪动画
- 下拉动画图标
- 如何在谷歌地图API v3上自定义一个地面覆盖图标动画
- 菜单图标动画jQuery
- 切换引导图标栏动画的jQuery函数不起作用
- 动画/响应/动态图标在滚动.给定的例子
- 如何在一个回调函数动画chrome扩展图标
- 如何动画chrome和ie图标(加载指示器)
- 谷歌地图动画符号(在到达路径的目的地后停止图标)
- 如何在谷歌地图API V3中动画化多段线上的自定义标记而不是图标
- Openlayer3图标鼠标悬停动画