在页面加载时打开 Mapbox map 上的所有工具提示,而无需单击标记来显示它的最佳方法是什么?我尝试删除 .leaflet-popup
上的 opacity: 0
但这没有用,因为它们似乎是由 JS 在 DOM 中动态构建的。
这能做到吗?我意识到这不是传统的,但我有一个我正在尝试重新创建的模拟,它基本上具有看起来像工具提示的标记,里面有标题。我搜索并搜索了自定义标记的方法,但我唯一能找到的就是使用您自己的自定义图像。由于我必须显示动态标题,这行不通,所以我现在的计划是对标记图像使用 1x1 透明 png,默认情况下只显示工具提示。
编辑
这是我的代码:
// Setup map
var map = L.mapbox.map("destinations-map", "xxx")
.setView([40, -74.50], 2);
// Load regions from JSON file
var loadRegions = function () {
$.ajax({
dataType: "json",
url: "/regions",
success: function (data) {
$.each(data.regions, function(i, region) {
L.mapbox.markerLayer({
type: "Feature",
geometry: {
type: "Point",
coordinates: region.coordinates
},
properties: {
title: region.title
}
})
.addTo(map)
.openPopup();
});
}
});
};
// Initially load region markers
loadRegions();
最佳答案
您可以通过扩展 Leaflet 中的 Map 对象来修改弹出窗口的默认行为。 Leaflet.js 广泛使用了伪经典继承模式,所以你已经为你做了很多工作。尝试:
L.Map = L.Map.extend({
openPopup: function(popup) {
this._popup = popup;
return this.addLayer(popup).fire('popupopen', {
popup: this._popup
});
}
});
然后当你添加你的弹窗时,像这样直接打开它们:
L.marker([65.10, 14.77])
.addTo(map)
.bindPopup("<b>Hello world!</b><br />I am popup 1.")
.openPopup();
这是一个例子:http://jsfiddle.net/P543v/
关于javascript - Mapbox:默认显示工具提示,无需单击标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20890955/