感谢:

https://github.com/brandonxiang/leaflet.marker.highlight

https://github.com/maximeh/leaflet.bouncemarker

1、导入highlightmarker库

import highlightmarker from "../lib/leaflet/leaflet.marker.highlight.js";
import "../lib/leaflet/leaflet.marker.highlight.css";

2、定制Icon

delete L.Icon.Default.prototype._getIconUrl;

L.Icon.Default.mergeOptions({
iconRetinaUrl: require("../lib/leaflet/images/marker-icon-2x.png"),
iconUrl: require("../lib/leaflet/images/marker-icon.png"),
shadowUrl: require("../lib/leaflet/images/marker-shadow.png")
}); import bouncemarker from "../lib/leaflet/leaflet.bouncemarker.js";

3、使用Marker

        that.markerPoint = L.marker([e.latlng.lat, e.latlng.lng], {
highlight: "permanent",
bounceOnAdd: true,
bounceOnAddOptions: { duration: 500, height: 100, loop: 2 },
bounceOnAddCallback: function() {
console.log("done");
}
}).addTo(that.mapR); that.markerPoint.on("click", function() {
console.log("click");
that.markerPoint.bounce({ duration: 500, height: 100 });
});

4、由于webpack编译过程中会删减css信息,导致开发状态有高亮效果,而发布之后没有,所以需要修改leaflet.marker.highlight.css文件,以兼容浏览器

.leaflet-marker-pane .light {
width: 200px!important;
height: 200px!important;
margin-top: -100px!important;
margin-left: -100px!important;
/*transform: translate(-50%, -50%);*/
background: transparent!important;
border: transparent!important;
} .leaflet-marker-pane .light .glow {
width: 0px;
height: 0px;
border-radius: 50%;
opacity:;
background: -webkit-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: -moz-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: -ms-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: -o-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
/* background: -webkit-radial-gradient(rgba(254, 211, 0, 1), rgba(255, 223, 67, 0) 70%); */
position: absolute;
display: block;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-moz-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-ms-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-o-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
} img:hover+.light.temporary .glow {
width: 200px;
height: 200px;
opacity: 0.2;
background: -webkit-radial-gradient(rgba(254, 211, 0, 1), rgba(255, 223, 67, 0) 70%);
-webkit-transition: all 800ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-moz-transition: all 800ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-ms-transition: all 800ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-o-transition: all 800ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
transition: all 800ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
} .leaflet-marker-pane .light .flare {
width: 0px;
height: 0px;
border-radius: 50%;
opacity:;
background: rgba(255, 223, 67, 0);
position: absolute;
display: block;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-moz-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-ms-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-o-transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
transition: all 1000ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
} img:hover+.light.temporary .flare {
width: 50px;
height: 50px;
opacity: 0.5;
background: rgba(254, 211, 0, 1);
-webkit-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-moz-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-ms-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
-o-transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
transition: all 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
} @-webkit-keyframes highlight1 {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 200px;
height: 200px;
opacity: 0.4;
}
} @-moz-keyframes highlight1 {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 200px;
height: 200px;
opacity: 0.4;
}
} @-ms-keyframes highlight1 {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 200px;
height: 200px;
opacity: 0.4;
}
} @-o-keyframes highlight1 {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 200px;
height: 200px;
opacity: 0.4;
}
} @keyframes highlight1 {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 200px;
height: 200px;
opacity: 0.4;
}
} @-webkit-keyframes highlight {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 50px;
height: 50px;
opacity: 0.8;
}
} @-o-keyframes highlight {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 50px;
height: 50px;
opacity: 0.8;
}
} @-moz-keyframes highlight {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 50px;
height: 50px;
opacity: 0.8;
}
} @-ms-keyframes highlight {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 50px;
height: 50px;
opacity: 0.8;
}
} @keyframes highlight {
0% {
width: 0px;
height: 0px;
opacity:;
}
100% {
width: 50px;
height: 50px;
opacity: 0.8;
}
} .permanent .glow {
background: -webkit-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: -moz-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: -ms-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: -o-radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
background: radial-gradient(rgba(66, 186, 255, 1), rgba(255, 223, 67, 0) 70%);
-webkit-animation: highlight1 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
-moz-animation: highlight1 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
-ms-animation: highlight1 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
-o-animation: highlight1 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
animation: highlight1 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
} .permanent .flare {
background: rgba(66, 186, 255, 1) !important;
-webkit-animation: highlight 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
-moz-animation: highlight 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
-ms-animation: highlight 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
-o-animation: highlight 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
animation: highlight 2s infinite cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

5、高亮marker之后,在删除marker时候,marker删除了,高亮的光圈没有删除,故需要修改leaflet.marker.highlight.js,增加删除高亮光圈功能,增加onRemove方式

    onRemove: function (map) {
originalOnRemove.call(this, map);
L.DomUtil.remove(this._light);
},

6、效果展示

【GIS】Vue、Leaflet、highlightmarker、bouncemarker的更多相关文章

  1. 【GIS】Vue esri-leaflet

    1.npm install esri-leaflet --save 2.引入包 import Leaflet from "leaflet"; var esri = require( ...

  2. 【GIS】Vue修改图层透明度

    1.添加透明度控制条 <input id="slider" type="range" min="0" max="1" ...

  3. 【JeecgBoot】关于 jeecg-boot 的项目理解、使用心得和改进建议

    工欲善其事,必先利其器. 脚手架选型 一年前,我接到为团队落地一个快速开发脚手架的任务. 在月底这节骨眼上,时间紧,任务急,有想自己撸一个脚手架的人都赶紧把这想法收起来吧!这劳民又伤身的事咱肯定是不能 ...

  4. 【VNC】Linux环境VNC服务安装、配置与使用

     [VNC]Linux环境VNC服务安装.配置与使用 2009-06-25 15:55:31 分类: Linux   前言:作为一名DBA,在创建Oracle数据库的过程中一般要使用dbca和netc ...

  5. 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装

      [MySQL]Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后, ...

  6. 【转】Python基础-封装与扩展、静态方法和类方法

    [转]Python基础-封装与扩展.静态方法和类方法 一.封装与扩展 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用者的代码:而外部使用者只知道一个接口(函数),只要接口(函数 ...

  7. 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    [转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...

  8. 【树莓派】树莓派与XBMC及Kodi、LibreELEC插件(二)

    之前的相关文章参考: [树莓派]树莓派与XBMC及Kodi.LibreELEC插件(一) [树莓派]树莓派与XBMC及Kodi.LibreELEC插件(二) [树莓派]树莓派与XBMC及Kodi.Li ...

  9. 【树莓派】树莓派与XBMC及Kodi、LibreELEC插件(一)

    网上高人多. 高手在民间,饭桶在机关. 越用树莓派,越发现这玩意儿的潜力,我想,未来我们用它,可以做很多事情. 最近在看树莓派的应用场景,看到网上有人用它做电视盒子. 参考相关文章,简单实践了一下,整 ...

随机推荐

  1. 关于SS的一点笔记

    过年的时候抽了点时间了解了下ss的协议.整理了一点笔记,一直没有时间发.今天发一下,免得忘了. SS的结构本身比较简单,他的基本结构如下: ss通常分为client和server两部分 client是 ...

  2. Java知识回顾 (4)Java包装类

    一. Java Number 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置 ...

  3. 440P 测试三星ssd840pro 512g

    下面是鲁大师的截屏 安装win8.1 x64颇费周折,计算机->管理模糊,解决方法 现在最大的问题是cpu风扇噪音和温度,看网上确实存在此问题,纯铜风扇+7783硅脂是必须的,下面鲁大师温度截屏 ...

  4. 微软BI 之SSIS 系列 - 在 SSIS 输出平面文件时根据运行日期生成不同的文件名称

    开篇介绍 在 SSIS 中操作文件的输入和输出是非常方便的,这个例子讲解一个最简单的需求:比如每天从数据库中查询一批数据要输出到文件,每天产生一个文件,那么文件的名称按照"文件名+日期&qu ...

  5. .net跨平台分析软件

    https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer

  6. Spark机器学习(7):KMenas算法

    KMenas算法比较简单,不详细介绍了,直接上代码. import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkCon ...

  7. Ubuntu18.04的网络管理netplan和防火墙ufw

    Netplan Ubuntu18.04使用的网络管理是netplan, 配置文件在/etc/netplan/下 刚安装完成的配置是这样的 刚安装完成的配置是这样的 network: ethernets ...

  8. Andriod书籍准备

    老大说公司准备开发MFC项目,过了一段时间又说开发Andriod,好吧,我现在准备Andriod. 鬼知道过段时间会变成什么. http://pan.baidu.com/share/link?shar ...

  9. 查看最新的Google地址

    nslookup www.google.com 8.8.8.8

  10. 小型IT部门建设之我见

    ​​关于IT团队建设,一般的原则是四大块组成: 1:业务分析师,对接业务部门,把业务需求转变成技术需求               专注于BRS( Business Requirement Speci ...