【发布时间】:2018-01-11 13:47:28
【问题描述】:
在 openlayers (v4.6.4) 中,当我使用 font-awesome 作为标记图标时,它们在第一次加载时不会显示(空缓存和硬重新加载)。我看到的只是一个矩形,就像一个破碎的角色。 在第二次加载时,它们看起来很完美。
var mapMarkerIcon = new ol.style.Style({
text: new ol.style.Text({
text: '\uf041 ', // <-- fa marker unicode
font: 'Normal ' + 24 + 'px ' + 'FontAwesome',
textBaseline: 'bottom',
fill: new ol.style.Fill({
color: green,
})
})
});
我猜这是因为 openlayers 在 font-awesome css 有机会加载之前绘制了 unicode 图标代码。在第二次刷新时,页面缓存了 css,这就是它起作用的原因。
我不能要求我的所有用户刷新一次。有人知道如何解决这个问题吗?
我可以强制 JS 等待 css 吗?
我想我现在只需要一个图标(地图标记)。 也许我可以加载这个以使其更快? (我想即使这样也不能保证在 JS 运行之前有 css)
我可以添加一点 javascript 在几毫秒后重绘图标吗?
【问题讨论】:
-
嘿尝试使用
Window: load event函数。这可能会对您有所帮助。
标签: javascript css font-awesome openlayers-3