我使用小叶画圆的层期间,瓣叶层(所以有几个层,每个包括几个圈)在地图上。添加css类的运行时
我已经保存在featuregroup所有层:
this.globalLayer = L.featureGroup();
我通过创建界的新featuregroup,并添加featuregroup到globalLayer添加新的社交圈吧:
let circleLayer: L.featureGroup();
let point1 = L.circle([pos_lat, pos_long], {color: color, opacity: 1,
radius: radius});
let point2 = L.circle([pos_lat, pos_long], {color: color, opacity: 1,
radius: radius});
circleLayer.addLayer(point1);
circleLayer.addLayer(point2);
// etc.
this.globalLayer.addLayer(circleLayer);
现在我想一个CSS类添加到某些层:
for (let cssLayer of cssLayers) { // cssLayers is a L.featureGroup[]
this.globalLayer.removeLayer(cssLayer);
cssLayer.setStyle({className: 'animate'});
this.globalLayer.addLayer(cssLayer);
}
这工程,但由于图层包含很多圈,这需要一段时间来计算。有没有办法只是添加一个CSS类而不删除并再次添加它们?
我已经试过
this.globalLayer.eachLayer(layer => {
layer.setStyle({className: 'animate'})
});
但setStyle()
在我当前的解决方法解决方案的类型L.Layer
JsFiddle不存在
这是一个非常有趣的问题。我懒得去为它创建一个程序,所以我恳请您创建一个小提琴,所以我可以在你确切的问题发挥。基本上,我们需要能够确定受到类名称影响的标签是什么。举例来说,一个简单的解决办法是无论如何定义一个类为您层(一个或多个),比如myLayer5,然后当你需要做相关的它,你可以document.getElementsByClassName(“myLayer5”)的东西,然后你可以遍历他们并添加/删除类,但保留myLayer5以备将来使用。 –
感谢您的答复,我创建了一个小提琴这里:http://jsfiddle.net/axwL44tm/ – JustYourCasualProgrammer