leaflet Js自定义控制按钮添加(文本、悬停)

2024-03-08

我跟着这个控制按钮传单教程 http://www.coffeegnome.net/control-button-leaflet/这对我有用。现在我想:

  1. 当我将鼠标悬停在按钮上时显示一些文本(就像缩放按钮一样)
  2. 当我将鼠标悬停在按钮上时更改按钮的颜色
  3. 能够在按钮内写入文本而不是图像。

这是代码:

    var customControl =  L.Control.extend({        
      options: {
        position: 'topleft'
      },

      onAdd: function (map) {
        var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom');

        container.style.backgroundColor = 'white';     
        container.style.backgroundImage = "url(http://t1.gstatic.com/images?q=tbn:ANd9GcR6FCUMW5bPn8C4PbKak2BJQQsmC-K9-mbYBeFZm1ZM2w2GRy40Ew)";
        container.style.backgroundSize = "30px 30px";
        container.style.width = '30px';
        container.style.height = '30px';

        container.onclick = function(){
          console.log('buttonClicked');
        }

        return container;
      }
    });

    var map;

    var readyState = function(e){
      map = new L.Map('map').setView([48.935, 18.14], 14);
      L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
      map.addControl(new customControl());
    }

    window.addEventListener('DOMContentLoaded', readyState);

看来你更需要一个 Button 而不是一个 div:

    var container = L.DomUtil.create('input');
    container.type="button";
  1. 然后你可以轻松设置鼠标悬停文本:

    container.title="No cat";
    
  2. 还有一些文本而不是图像:

    container.value = "42";
    
  3. 您可以使用鼠标事件来设置按钮的样式:

    container.onmouseover = function(){
      container.style.backgroundColor = 'pink'; 
    }
    container.onmouseout = function(){
      container.style.backgroundColor = 'white'; 
    }
    

(你当然可以用CSS来完成最后一部分,可能会更优雅)

完整示例:http://codepen.io/anon/pen/oXVMvy http://codepen.io/anon/pen/oXVMvy

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leaflet Js自定义控制按钮添加(文本、悬停) 的相关文章

  • 如何查询和过滤 Firebase 实时数据库 [重复]

    这个问题在这里已经有答案了 我想从数据库中获取所有人员 其中名字和姓氏由用户输入给出 到目前为止 这是我的代码 admin database ref persons orderByChild Firstname equalTo firstN
  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • Javascript图像编辑插件

    在哪里可以找到 Javascript 或 jQuery 图像编辑器插件 用户可以单击图像进行编辑 并且该插件允许他们进行裁剪 调整大小 旋转 翻转等 Pixastic http pixastic com lib 不再活跃 和CamanJS
  • 节点异步循环 - 如何使该代码按顺序运行?

    我知道有几个关于此的帖子 但根据我发现的那些帖子 这应该可以正常工作 我想在循环中发出 http 请求 并且不希望循环迭代 直到触发请求回调 我正在使用异步库 如下所示 const async require async const req
  • 在 ES5 中创建自定义元素 v1,而不是 ES6

    现在 如果您严格遵循自定义元素规范 v1 https html spec whatwg org multipage custom elements html custom elements 无法在不支持类的浏览器中使用自定义元素 有没有办法
  • 在 JavaScript 中计算不包括周末和节假日的天数

    我正在尝试编写一个代码 其中将计算总天数 不包括周末和自定义假期 我通过 stackoverflow 和 adobe 论坛进行搜索以找到解决方案 并提供了以下代码 如果公共假期恰逢工作日 周六至周三 则不计算在内 我的问题是 如果公共假期落
  • 在 d3 中应用转换时出现错误

    我正在尝试对我在 d3 中设计的条形图应用一些过渡效果 这是我的代码 svg selectAll bar data data enter append g attr class bar append rect attr rx barRadi
  • 当key未知时如何获取js对象中的属性值

    我有一个对象数组 a 81 25 p 81 25 81 26 p 81 26 我想循环遍历数组并获取值p在每个元素中 for var key in a console log a key outputs 81 25 Object How d
  • 如何使用 JavaScript 压缩文件?

    有没有办法使用 JavaScript 来压缩文件 例如 在雅虎邮件中 当您选择下载电子邮件中的所有附件时 它会被压缩并下载到单个 zip 文件中 JavaScript 能够做到这一点吗 如果是这样 请提供一个编码示例 我发现这个图书馆叫js
  • 2 个 SVG 路径的交集

    我需要检查两个 SVG Path 元素是否相交 检查边界框与 getBBox 太不准确了 我目前正在做的是迭代两条路径 getTotalLength 然后检查是否有两个点 getPointAtLength 是平等的 下面是一个片段 但正如您
  • 在闪亮的应用程序中使用传单地图作为过滤器

    是否可以使用传单地图来过滤闪亮应用程序中的数据 就像在 Tableau 或 Power BI 中一样 方法是单击地图上的某个状态 然后根据条件过滤另一个图表或表格选择 None
  • 如何将值从孩子的孩子传递给父母?

    我有一个父组件 有一个子组件 它也有一个子组件 Parent Child One child of parent Child Two child of child 当在子二中定义一个值时 我使用回调将该值传递给子一 但我也想将相同的值传递回
  • 如何在没有 jQuery 或延迟加载的情况下推迟背景图像

    根据帕特里克 塞克斯顿tutorial https varvy com pagespeed defer images html 我想以与这里相同的方式推迟背景图像img img src data image png base64 R0lGO
  • Python 中的 Firebase 身份验证时出现 KeyError:“databaseURL”

    相信你做得很好 我是 firebase 的新手 正在尝试进行用户身份验证 我已经安装了pyrebase4并在firebase控制台上创建了一个项目 我还启用了使用 电子邮件和密码 登录并尝试连接我的应用程序 下面是我正在尝试的代码 impo
  • 如何在 Node.js 中打开 Windows-1255 编码文件?

    我有一个 Windows 1255 希伯来语 编码的文件 我希望能够在 Node js 中访问它 我尝试使用打开文件fs readFile 它给了我一个Buffer我无能为力 我尝试将编码设置为Windows 1255 但这没有被识别 我还
  • 反转比例函数

    这对我来说很有趣 看下面的D3代码 var scale d3 scale linear domain 100 500 range 10 350 scale 100 Returns 10 scale 300 Returns 180 scale
  • 阻止 PM2 上不同时运行的请求

    在我的 Express 应用程序中 我在应用程序中定义了 2 个端点 一种用于 is sever up 检查 另一种用于模拟阻塞操作 app use status req res gt res sendStatus 200 app use
  • 如何加载Jquery Tiny滚动条

    所以我想自定义一个滚动条 我发现了一个很小的滚动条 这是一个jquery插件 http baijs nl tinyscrollbar http baijs nl tinyscrollbar 问题是 无论如何我都无法让它工作 我将 Jquer
  • javascript 加壳器与压缩器

    我想知道加壳器与压缩器的区别 优点是什么 即您应该在网络应用程序中部署压缩版本还是压缩版本 示例代码 var layout NAVVISIBLE 1 Init function this Resize Dimensions function
  • 如何将函数导入到Vue组件中?

    我正在尝试将单个函数导入到我的 Vue 组件中 我为我的函数创建了一个单独的 js 文件 randomId js exports randomId gt My function 在我的 Vue 组件中 我导入了 Random js let

随机推荐

  • 在 React Form 中更新 props 变化的状态

    我在使用 React 表单和正确管理状态时遇到问题 我在表单 模态 中有一个时间输入字段 初始值设置为状态变量getInitialState 并从父组件传入 这本身就很好用 当我想通过父组件更新默认的 start time 值时 问题就出现
  • sed — 连接一系列选定的行

    我是初学者sed 我知道可以将一个命令 或一组命令 应用于一定范围的行 如下所示 sed begin end some command where begin 是一个正则表达式 指定范围的起始行并且 end 是一个正则表达式 指定范围的结束
  • 如何要求电子邮件的收件人在其回复下方添加“-- 在本行上方回复 --” 标签?

    我想解析传入的电子邮件 这是对我发送的电子邮件的回复 的实际消息 没有 原始消息 部分 签名等 为了实现这一点 我想在回复中包含一个分隔符 例如 在本行上方回复 就像我读过的许多帖子中建议的那样 但是 当用户回复我的一封电子邮件时 如何要求
  • .NET 部署 Office 2003 可再发行主互操作程序集 (o2003pia.msi)

    有没有人真正成功地为 o2003 msi 创建先决条件 有一个lot很多人问这个问题 但我找不到真正成功的人 我发现一些极其复杂的解决方案 您需要完成可能提供也可能不提供源的 cpp 文件 我什至尝试遵守其中之一 但在目标计算机上出现配置错
  • 如何将事件分发到(Wildfly)集群中的所有节点?

    当我的进程中运行时间较长的进程的状态时 我想通知集群中的所有节点JavaEE 7WebApp 发生变化 因此每个节点都可以通过 WebSocket 依次通知其客户端该变化 我正在集群环境中使用 Wildfly 10 What JavaEE
  • 使用 JSF 暂时抑制 beanvalidation

    我有一个用户类 其中包含电子邮件地址和密码字段 NotNull Size min 6 Pattern flags Pattern Flag CASE INSENSITIVE regexp private String password nu
  • jquery .animate 不同的速度

    我正在 Jquery 中使用 animate 函数 我有一个使用 marginLeft 滑动的 div 但我也需要它淡入 但我需要它比 marginLeft 效果慢 对于 animate 我似乎只能应用一个速度参数
  • 在reactjs材料ui进度条中显示百分比数字

    I use 线性确定 https material ui com demos progress 我想显示完成了多少进度 就像下图一样 我不认为 Material UI 提供进度条 如上图所示 但是 您可以使用 React Bootstrap
  • 如何将表标记为只读?

    我正在处理 django 站点的迁移 我想将除 django session 表之外的所有表设为只读 我怎样才能做到这一点 REVOKE INSERT UPDATE DELETE TRUNCATE ON ALL TABLES IN SCHE
  • MVC5 Ajax.BeginForm刷新整个页面

    为什么表单发布没有通过 ajax 发生 而是重新加载到新页面 我的 js 包括 我的剃须刀观点 div using Ajax BeginForm Login null new AjaxOptions div
  • 在主程序之前在 lambda 中加载 S3 文件

    我正在编写一个 lambda 函数 需要加载存储在 S3 中的密钥 它不会经常改变 所以我不想每次调用 lambda 函数时都获取它 所以我想在容器旋转时加载它一次 然后在 lambda 容器的生命周期内保留该值 但是 由于异步方法 get
  • haproxy:获取主机名

    我正在尝试获取请求者主机 IP 因为它涉及 haproxy 节点 我的 haproxy 配置如下 frontend www http bind 9000 http request redirect location https fi 914
  • 不知道如何构建任务“路线”

    我无法执行rake routes即使routes rb文件为空 这是输出 rake routes rake aborted Don t know how to build task routes See the list of availa
  • Linux shell:使用 grep 和 fzf 交互式模糊搜索文件中的内容

    我想编写一个 shell 脚本 在特定目录 例如我的 config 文件夹 中的所有文件中搜索模式 使用 grep 我写了以下内容 grep Ril
  • Zend-framework DB:OR 代替 AND 运算符

    有这样的 zend 查询 select this gt table gt select gt where title LIKE searchWord gt where description LIKE searchWord gt where
  • Android Marshmallow (6.0) 上的 vibrate_when_ringing

    在我的代码中我有 Settings System putInt this getContentResolver vibrate when ringing isVibrateWhenRinging 1 0 使用以下权限
  • 为什么 Bootstrap 导航栏总是折叠的? [复制]

    这个问题在这里已经有答案了 我更新到了 ng bootstrap 的 v1 0 beta 现在导航栏总是折叠的 当我单击汉堡包来切换菜单时 它会打开 但垂直而不是水平显示内容 我已经包含了下面的导航代码 和以前一样 此时我无法弄清楚问题是否
  • SDK 3.1:如何判断SDK是否使用iOS6账号?

    如果我在 iOS6 中设置了 Facebook 帐户 但用户已将其关闭 则 SDK 只会向我提供 FBSessionStateClosedLoginFailed 状态 由此 我无法判断用户是否在 iOS 中关闭了我们的服务 情况 1 或者没
  • 特定分支的 Github 拉取请求模板

    是否可以为特定分支分配拉取请求模板 使用查询参数是唯一的解决方法吗 查询参数 https help github com articles about automation for issues and pull requests with
  • leaflet Js自定义控制按钮添加(文本、悬停)

    我跟着这个控制按钮传单教程 http www coffeegnome net control button leaflet 这对我有用 现在我想 当我将鼠标悬停在按钮上时显示一些文本 就像缩放按钮一样 当我将鼠标悬停在按钮上时更改按钮的颜色