传单:像L.ImageOverlay一样设置HTML块

传单:像L.ImageOverlay一样设置HTML块,html,leaflet,Html,Leaflet,是否可以设置一个类似于imageOverlay的图层,并在传单地图中嵌入html标记?也许用插件? 我试着用弹出窗口设置它,但是我需要更多关于X和Y坐标的控制。因此,这并不是我的问题的解决方案。如果您阅读了关于如何扩展传单和制作插件的介绍,并查看了,答案会变得非常简单: L.HtmlBlockOverlay = L.ImageOverlay.extend({ initialize: function(bounds, options) { return L.ImageOverlay.p

是否可以设置一个类似于imageOverlay的图层,并在传单地图中嵌入html标记?也许用插件? 我试着用弹出窗口设置它,但是我需要更多关于X和Y坐标的控制。因此,这并不是我的问题的解决方案。

如果您阅读了关于如何扩展传单和制作插件的介绍,并查看了,答案会变得非常简单:

L.HtmlBlockOverlay = L.ImageOverlay.extend({
  initialize: function(bounds, options) {
    return L.ImageOverlay.prototype.initialize.call(this, null, bounds, options);
  },

  _initImage: function() {
    var block = this._image = L.DomUtil.create('div', 'leaflet-image-layer' +
                                               (this._zoomAnimated ? ' leaflet-zoom-animated' : ''));

    if (this.options.className) { L.DomUtil.addClass(block, this.options.className); }
    block.innerHTML = this.options.html;
  }
});


var blockOverlay = new L.HtmlBlockOverlay(bounds, {
  html: 'Hello world!',
  className: 'hello-world-box'
}).addTo(map);

请参见。

是否需要HTML层以缩放方式缩放?一张小照片可能会有帮助。是的,它应该是可缩放的。哇,我对它的简单性印象深刻。谢谢您!一个问题:如何在创建的元素上绑定jquery<代码>$('hello world box')。在('click',function(){console.log('hello');})上无效。在尝试将事件附加到DOM之前,请确保该内容在DOM中。