javascript - 根据传单js缩放级别添加一个类
问题描述
我的一张使用 Leaflet.js 的地图有问题。
我有一些元素以 6 或更高的缩放级别出现在地图上(作为参考,1 是世界视图 - 所以数字越高,视图越细化)。
当地图的缩放级别大于 6 时,我需要向一个类添加一个类,以确保它不会出现在地图上。我需要确保每次发生更改时都会不断加载该函数。我认为这是一个事件监听器?
问题是我不太擅长 javascript,我正在努力获取我需要的信息。我最近遇到了一些障碍,我的信心受到打击。
我有一些我写的伪代码。
function myFunction() {
if zoom > 4 {
element.classList.add("disappear");
}
};
var element = document.getElementById("dma-marker-icon leaflet-marker-icon leaflet-zoom-animated leaflet-clickable");
myFunction() // Call listener function at run time
addListener(myFunction) // Attach listener function on state changes
你能帮我完善一下吗?非常感谢。
解决方案
传单地图上有一个事件,在地图缩放更改后触发 - zoomend
。因此,如果您侦听该事件,则可以相应地在目标元素上添加或删除该类。您没有显示太多代码,因此此处的变量名称可能与您的不匹配,但是...
myMap.on('zoomend', myFunction);
function myFunction(e) {
if myMap.getZoom() > 4 {
element.classList.add("disappear");
}
else {
element.classList.remove("disappear");
}
}
推荐阅读
- c++ - 如何将 -1x10^200 转换为 IEEE 754 双精度
- python - 如何base64编码一个html_string
- ruby-on-rails - 安装目录中 rbenv 错误的 gem 版本
- visual-studio-code - VS Code 中的“运行单元需要安装 Jupyter 笔记本”错误
- javascript - 使用 axios 的多个请求而不等待所有请求都在数组列表中完成?
- vue.js - 我无法在 vue 中集成 js 查询文件
- linq-to-sql - LINQ 查询返回正确的计数但重复数据
- java - 无法在输出文件中逐行对文本文件输入进行排序
- postgresql - 锁定行时防止竞争条件
- javascript - 数据排序方法在javascript中不起作用