自定义图层控制对话框
customizing layer control dialog
默认情况下,图层控制对话框如下所示:
(来自 https://leafletjs.com/examples/layers-control/example.html)
如果我想让它看起来更像怎么办?:
我该怎么做?
通过检查 DOM,您似乎想在 .leaflet-control-layers-list
内添加您的自定义元素,在 .leaflet-control-layers-overlays
.
之前
使用 vanilla JS,您可以使用 .insertBefore
方法实现此目的,如下所示:
let layerControlContainer = document.querySelector('.leaflet-control-layers-list');
let layerOverlays = document.querySelector('.leaflet-control-layers-overlays');
let myInsert = document.createElement('span');
myInsert.innerHTML = 'Overlays';
layerControlContainer.insertBefore(myInsert, layerOverlays);
检查fiddle:https://jsfiddle.net/9j7pveq0/
另一种解决方案是使用 insertAdjacentHTML
:
document.getElementsByClassName("leaflet-control-layers-overlays")[0].insertAdjacentHTML("beforeBegin","<div>my title</div>")
默认情况下,图层控制对话框如下所示:
(来自 https://leafletjs.com/examples/layers-control/example.html)
如果我想让它看起来更像怎么办?:
我该怎么做?
通过检查 DOM,您似乎想在 .leaflet-control-layers-list
内添加您的自定义元素,在 .leaflet-control-layers-overlays
.
使用 vanilla JS,您可以使用 .insertBefore
方法实现此目的,如下所示:
let layerControlContainer = document.querySelector('.leaflet-control-layers-list');
let layerOverlays = document.querySelector('.leaflet-control-layers-overlays');
let myInsert = document.createElement('span');
myInsert.innerHTML = 'Overlays';
layerControlContainer.insertBefore(myInsert, layerOverlays);
检查fiddle:https://jsfiddle.net/9j7pveq0/
另一种解决方案是使用 insertAdjacentHTML
:
document.getElementsByClassName("leaflet-control-layers-overlays")[0].insertAdjacentHTML("beforeBegin","<div>my title</div>")