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 06 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
javascript实现unicode与ASCII相互转换的方法
Dec 10 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
angularjs 源码解析之scope
Aug 22 Javascript
Javascript blur与click冲突解决办法
Jan 09 Javascript
js前端导出Excel的方法
Nov 01 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 Javascript
微信小程序下拉框搜索功能的实现方法
Jul 31 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
vue实现修改图片后实时更新
Nov 14 Javascript
vue使用localStorage持久性存储实现评论列表
Apr 14 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
php str_pad 函数使用详解
2009/01/13 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP中的session安全吗?
2016/01/22 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
Nginx实现反向代理
2017/09/20 Servers
laravel中的一些简单实用功能
2018/11/03 PHP
MSN消息提示类
2006/09/05 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
编写React组件项目实践分析
2018/03/04 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
python实现kmp算法的实例代码
2019/04/03 Python
python中的数据结构比较
2019/05/13 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
python Tensor和Array对比分析
2020/01/08 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
考试作弊被抓检讨书
2014/01/10 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
新学期决心书
2014/03/11 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
班级课外活动总结
2014/07/09 职场文书
党员转正申请报告
2015/05/15 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
python的html标准库
2022/04/29 Python