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 相关文章推荐
Prototype使用指南之form.js
Jan 10 Javascript
基于JQuery的Pager分页器实现代码
Jul 17 Javascript
浏览器常用高宽的jquery插件
Feb 24 Javascript
JS和函数式语言的三特性
Mar 05 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
Apr 29 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
Sep 02 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
Sep 19 Javascript
实例分析js事件循环机制
Dec 13 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
node.js基础知识汇总
Aug 25 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
ThinkPHP登录功能的实现方法
2014/08/20 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
详解python数据结构和算法
2019/04/18 Python
Python Collatz序列实现过程解析
2019/10/12 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python内置函数locals和globals对比
2020/04/28 Python
Django权限设置及验证方式
2020/05/13 Python
django使用channels实现通信的示例
2020/10/19 Python
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
2014年端午节演讲稿范文
2014/05/23 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
2014年卫生工作总结
2014/11/27 职场文书
社区端午节活动总结
2015/02/11 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
2019财务转正述职报告
2019/06/27 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书