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 相关文章推荐
广告切换效果(缓动切换)
May 27 Javascript
JS 非图片动态loading效果实现代码
Apr 09 Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
Jan 27 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
angular select 默认值设置方法
Jun 23 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
Nov 19 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 Javascript
简述ES6新增关键字let与var的区别
Aug 23 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
基于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
ecshop实现smtp发送邮件
2015/02/03 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
2015/08/31 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
python如何在终端里面显示一张图片
2016/08/17 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
高质量“欢迎词”
2019/04/03 职场文书
使用JS实现简易计算器
2021/06/14 Javascript