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正文内容高亮效果的实现方法
Jun 30 Javascript
Javascript window对象详解
Nov 12 Javascript
不使用ajax实现无刷新提交表单
Dec 21 Javascript
angular简介和其特点介绍
Jan 29 Javascript
jQuery判断一个元素是否可见的方法
Jun 05 Javascript
jQuery Validate验证框架经典大全
Sep 23 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
JS基于for语句编写的九九乘法表示例
Jan 04 Javascript
JSON数据中存在单个转义字符“\”的处理方法
Jul 11 Javascript
详解小程序之简单登录注册表单验证
May 13 Javascript
layui 富文本赋值,取值,取纯文本值的实例
Sep 18 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
python字符串,数值计算
2016/10/05 Python
Python快速从注释生成文档的方法
2016/12/26 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Django中信号signals的简单使用方法
2019/07/04 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Python实现数值积分方式
2019/11/20 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
德国排名第一的主题公园门票网站:Attraction Tickets Direct
2019/09/09 全球购物
开会迟到检讨书
2014/01/08 职场文书
六十大寿答谢词
2014/01/12 职场文书
怎么写好自荐书
2014/03/02 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
坎儿井导游词
2015/02/09 职场文书
总经理岗位职责范本
2015/04/01 职场文书
如何写好开幕词?
2019/06/24 职场文书
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL