如何添加多个自定义控件按钮传单js?

时间:2016-08-02 11:27:37

标签: javascript leaflet custom-controls

我找到了在leaftlet地图上添加一个按钮到topleft角的代码。但现在我想一个接一个地添加多个按钮。

  1. 是否可以在以下代码中插入多个按钮?

  2. 我也试过使用复选框/单选按钮。但我不知道如何在复选框和按钮上添加标签。

  3. 并为其添加选中/取消选中的属性。
  4. 感谢。

    我的代码:

    var customControl = L.Control.extend({ options: {position: 'topleft'},onAdd: function (map) {
    var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom');
    
    onAdd: function (map) {
        var container = L.DomUtil.create('input','my-button btn');
        container.type="button";
        container.title="x";
        container.value = "x";
        container.label = "x";
    
        container.style.backgroundColor = 'white';     
    
        container.style.backgroundSize = "30px 30px";
        container.style.width = '40px';
        container.style.height = '40px';
        container.style.borderRadius = "25px";
        container.style.padding = "0";
        container.style.margin = "10px";
    
    container.onclick = function(){
      console.log('buttonClicked');
    }
    
    return container;}});
    

1 个答案:

答案 0 :(得分:1)

您可以创建尽可能多的Leaflet"控件"如你所愿。您可以将它们插入任何角落,它们只会简单地叠加在一起。 (如果我没记错的话,有10px的边距)在给定角落的垂直列中。

至于每个控件的内容,它纯粹是HTML和CSS。在您的代码中,您使用的是Leaflet的实用程序L.DomUtil.create(),但您也可以简单地使用本机document.createElement()(但必须在单独的行中添加类)或甚至jQuery DOM实用程序(您可以使用它直接编写HTML字符串)。

然后您可以构建复杂的内容(包含输入,关联标签等)。只需查看构建DOM节点的HTML教程/ JavaScript。