有人能分辨出密码有什么问题吗?传说,这应该是最容易的部分,没有出现,我不知道为什么。也许藏在别的层里?
遵循getColor和图例代码
var legend = L.control({
position: 'bottomleft'
});
legend.onAdd = function(map) {
var div = L.DomUtil.create('div', 'info legend'),
grades = [0.2, 0.26, 0.32, 0.38, 0.44, 0.5, 0.56, 0.62, 0.68, 0.74, 0.8, 0.86, 0.92, 0.98, 1.04, 1.1],
labels = [],
from, to;
for (var i = 0; i < grades.length; i++) {
from = grades[i];
to = grades[i + 1];
labels.push(
'<i style="background:' + getColor(from + 1) + '"></i> ' +
from + (to ? '–' + to : '+'));
}
div.innerHTML = labels.join('<br>');
return div;
};发布于 2016-07-12 14:58:00
编辑下面的回答注释:
使用开发工具(F12 / on : Cmd + Alt + I)读取潜在的控制台错误。
在您的示例中,getColor函数没有在legend.onAdd的作用域中定义。
此外,还将1添加到from值中,结果值为1.2-2.1,而getColor函数使用的值为0.26至1.1。
使用repo中的代码工作演示:http://plnkr.co/edit/lbKlXaV76t6NclHQPCtr?p=preview (getColor在正确的范围内复制,并在getColor(from + 1)中删除+1 )
原来的答案:
您是否将自定义控件添加到地图中?
legend.addTo(map);顺便提一句,您的<i>标签上有来自getColor的图例化背景颜色,没有任何内容。因此,您可能不会看到彩色内容…。
演示:http://jsfiddle.net/3v7hd2vx/34/ (在<i>标记中包含虚拟内容)
发布于 2021-09-03 11:00:57
我也有类似的问题,i元素的宽度是0 px。
尝试在i之间添加文本,并添加颜色以删除文本,如下所示:
'<i style="background:' + getColor(from + 1) + ';color:' + getColor(from + 1) +';">sometexttogivespace</i> ' +
from + (to ? '–' + to : '+'));或复制传单教程中的css代码以设置i的宽度。
.legend i {
width: 18px;
height: 18px;
float: left;
margin-right: 8px;
opacity: 0.7;
}https://stackoverflow.com/questions/38329785
复制相似问题