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类的封装及实现代码
Dec 02 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
Dec 05 Javascript
javascript实现延时显示提示框特效代码
Apr 27 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
angular分页指令操作
Jan 09 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
Angular中ng-bind和ng-model的区别实例详解
Apr 10 Javascript
vue检测对象和数组的变化分析
Jun 30 Javascript
JavaScript实现滑动门效果
Jan 18 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
Oct 21 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
我的群发邮件程序
2006/10/09 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
JavaScript模拟push
2016/03/06 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
Django上线部署之IIS的配置方法
2019/08/22 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
java程序员面试交流
2012/11/29 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
小班秋游活动方案
2014/02/22 职场文书
霸王洗发水广告词
2014/03/14 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
活动总结报告范文
2014/05/04 职场文书
个人课题方案
2014/05/08 职场文书
校长个人总结
2015/03/03 职场文书
岁月神偷观后感
2015/06/11 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书