当前位置:   article > 正文

如何用css3做openLayers3的闪烁效果_地图坐标点缩放闪烁css3特效

地图坐标点缩放闪烁css3特效

最近在做地图上的一个故障指示器,  要求有故障时,此指示器会呈现不同的展现样式, 用闪烁最好了!

但openLayers3中没有闪烁的效果,所以就借助CSS3的动画效果了,反正openLayers3也是使用了h5+css的,它们通用。

最终的效果是:

第一步:

在你的地图HTML文件中加一个div:

  1. <!-- 故障指示器的闪烁 -->
  2. <div id="css_animation"></div>

就这么一条哦!不要怀疑呢!

第二步:给这个div写css3的样式
<style>

  1. /** 地图上的故障处理器显示效果*/
  2. #css_animation{
  3. height:50px;
  4. width:50px;
  5. border-radius: 25px;
  6. background: rgba(255, 0, 0, 0.9);
  7. transform: scale(0);
  8. animation: myfirst 3s;
  9. animation-iteration-count: infinite;
  10. }
  11. @keyframes myfirst{
  12. to{
  13. transform: scale(2);
  14. background: rgba(0, 0, 0, 0);
  15. }
  16. }

</style>

这两步做好后,你用chrom和360浏览器浏览应该有一个红色的扩散的效果,如果没有,你要换浏览器了。

如何把它弄到地图上去呢?只需要
 

  1. var point_div = document.getElementById("css_animation");
  2. var point_overlay = new ol.Overlay({
  3. element: point_div,
  4. positioning: 'center-center'
  5. });
  6. map.addOverlay(point_overlay);
  7. point_overlay.setPosition([114.04911, 30.32815833]);

就可以了。

解释这段代码:首先,var point_div = document.getElementById("css_animation");获得具有动画效果的HTML元素;然后将其赋予 overlay 的 element 参数,overlay 还有一个参数是 positioning: 'center-center',表示 HTML 元素相对于 overlay 的定位点的方位,”center-center” 表示元素中心对准定位点中心;最后 map.addOverlay(point_overlay); 将 overlay 添加到地图中,此时的 overlay 是不可见的,最后一行:point_overlay.setPosition([11468382.41282299,3502038.887913635]);设置了 overlay 可见元素(也就是具有动画的元素)的位置,这样动画元素就设置到相应的点了。

这样,我们就实现了原来文章开头的效果。

学到了什么呢? 学到了openLayers3地图与h5+css3相结合的办法:如果想把H5和CSS的效果与地图相结合,可以那么,可以先做好HTML元素的效果,然后,用地图上的什么东西,把它当成一个element加入进去,它就进入了地图了。呵呵!

我们把html的dom加到openlayers以后又需要删除,该怎么删除呢?

openlayers已经给我们提供好参数了,通过getOverlays()可以获取到map上的所有overlays 代码如下

map.getOverlays().clear();

 

此文来源于:https://blog.csdn.net/qingyafan/article/details/49848455的实践成功!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/607368
推荐阅读
相关标签
  

闽ICP备14008679号