Openlayers实现点闪烁扩散效果


Posted in Javascript onSeptember 24, 2020

本文实例为大家分享了Openlayers实现点闪烁扩散效果的具体代码,供大家参考,具体内容如下

点闪烁样式:

Openlayers实现点闪烁扩散效果

DOM的样式实现

/**橙色点扩散闪烁样式*/
.point_animation{
 background: #ff9900;
 width: 6px;
 height: 6px;
 border: 2px #ff9900 solid;
 border-radius: 50%;
 position: absolute;
}
.point_animation p, .point_animation span{
 position: absolute;
 width: 4px;
 height: 4px;
 animation: point_animation 1.5s infinite;
 box-shadow: 0px 0px 1px #ff9900; 
 margin: 0px;
 border-radius: 50%;
}
.point_animation span{
 animation-delay: 0.8s;
}
@keyframes point_animation{
 10% {
 transform: scale(1);
 }
 100% {
 transform: scale(8);
 }
}
/**红色点扩散闪烁样式*/
.css_animation{
 height:50px; 
 width:50px;
 border-radius: 25px; 
 background: rgba(255, 0, 0, 0.9);
 transform: scale(0);
 animation: mypoint 3s;  
 animation-iteration-count: infinite;
}
@keyframes mypoint{
 to{
 transform: scale(1.5);
 background: rgba(0, 0, 0, 0);
 }
}

在地图上添加点—采用overlay添加DOM元素

需要用到Openlayers中的overlay元素,官方对于如何使用overlay做出了相关API说明

///创建overlay,element传入的是存在于web中的DOM元素
var popup = new ol.Overlay({
 element: document.getElementById('popup')
});
popup.setPosition(coordinate);//设置overlay的位置
map.addOverlay(popup);//讲overlay添加到地图上

具体代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>点扩散</title>
 <link rel="stylesheet" href="https://openlayers.org/en/v3.20.1/css/ol.css" type="text/css">
  <script src="https://openlayers.org/en/v3.20.1/build/ol.js"></script>
 <style>
 .point_animation{
  background: #ff9900;
  width: 6px;
  height: 6px;
  border: 2px #ff9900 solid;
  border-radius: 50%;
  position: absolute;
 }

 .point_animation p, .point_animation span{
  position: absolute;
  width: 4px;
  height: 4px;
  animation: point_animation 1.5s infinite;
  box-shadow: 0px 0px 1px #ff9900; 
  margin: 0px;
  border-radius: 50%;
 }
 .point_animation span{
  animation-delay: 0.8s;
 }
 @keyframes point_animation{
  10% {
  transform: scale(1);
  }
  100% {
  transform: scale(8);
  }
 }
 .css_animation{
  height:50px; 
  width:50px;
  border-radius: 25px; 
  background: rgba(255, 0, 0, 0.9);
  transform: scale(0);
  animation: mypoint 3s;   
  animation-iteration-count: infinite;
 }
 @keyframes mypoint{
  to{
  transform: scale(1.5);
  background: rgba(0, 0, 0, 0);
  }
 }
 </style>
</head>
 
<body>
 <div id="container"></div>
 <script type="text/javascript">
 var baseLayer = new ol.layer.Tile({
  source: new ol.source.XYZ({
  url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
  }),
 });
 
 var map = new ol.Map({
  layers: [baseLayer],
  view: new ol.View({
  center: [104.5602,32.4070],
  projection: 'EPSG:4326',
  zoom: 4,
  extent: [-180, -90, 180, 90]
  }),
  target: "container",
  interactions:ol.interaction.defaults({
  doubleClickZoom: false
  }),
  controls:ol.control.defaults({
  zoom:false,
  attribution: false,
  }),
 });
 setFlashPoint()
 function setFlashPoint(){
  //第一种样式
  var element = document.createElement("div");
  element.className = "point_animation";
  var p = document.createElement("p");
  var span = document.createElement("span");
  element.appendChild(p);
  element.appendChild(span);
  var point_overlay = new ol.Overlay({
  element: element,
  positioning: 'center-center',
  });
  map.addOverlay(point_overlay);
  point_overlay.setPosition([120,30]);
  //第二种样式
  var ele = document.createElement("div");
  ele.className = "css_animation";
  var point_overlay2 = new ol.Overlay({
  element: ele,
  positioning: 'center-center',
  });
  map.addOverlay(point_overlay2);
  point_overlay2.setPosition([110,30]);
 }
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js运动框架_包括图片的淡入淡出效果
May 11 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
Nov 02 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
浅析javascript中的事件代理
Nov 06 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
JS中将多个逗号替换为一个逗号的实现代码
Jun 23 Javascript
layui 设置table 行的高度方法
Aug 17 Javascript
vue使用swiper.js重叠轮播组建样式
Nov 14 Javascript
jQuery实现简单弹幕效果
Nov 28 jQuery
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
Sep 24 #Javascript
vue3.0生命周期的示例代码
Sep 24 #Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 #Javascript
Vue3不支持Filters过滤器的问题
Sep 24 #Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 #Javascript
vue实现日历表格(element-ui)
Sep 24 #Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
Sep 24 #Javascript
You might like
模拟flock实现文件锁定
2007/02/14 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
jquery简单体验
2007/01/10 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python动态加载变量示例分享
2014/02/17 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
python画微信表情符的实例代码
2019/10/09 Python
Python any()函数的使用方法
2019/10/28 Python
python绘制随机网络图形示例
2019/11/21 Python
Django实现内容缓存实例方法
2020/06/30 Python
python3代码中实现加法重载的实例
2020/12/03 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
彪马法国官网:PUMA法国
2019/12/15 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
2014年民政工作总结
2014/11/26 职场文书
公司门卫岗位职责
2015/04/13 职场文书