Javascript 不止一个“;oneachfeature“;传单
我试图将两个功能组合在一个图层上,但不能同时使用它们。一个是突出显示光标悬停的位置,另一个是从弹出窗口中获取信息。我使用了这个突出显示的指南:(添加交互部分,尝试将其合并到工作信息弹出层)。此外,目前它的突出悬停,但如果它会突出显示点击。 代码:Javascript 不止一个“;oneachfeature“;传单,javascript,gis,leaflet,Javascript,Gis,Leaflet,我试图将两个功能组合在一个图层上,但不能同时使用它们。一个是突出显示光标悬停的位置,另一个是从弹出窗口中获取信息。我使用了这个突出显示的指南:(添加交互部分,尝试将其合并到工作信息弹出层)。此外,目前它的突出悬停,但如果它会突出显示点击。 代码: 功能样式(功能){ 返回{ fillColor:'蓝色', 体重:2, 不透明度:1, 颜色:“灰色”, dashArray:'3', 填充不透明度:0.7 }; } L.geoJson(piirid,{style:style}); 功能高亮功能(e)
功能样式(功能){
返回{
fillColor:'蓝色',
体重:2,
不透明度:1,
颜色:“灰色”,
dashArray:'3',
填充不透明度:0.7
};
}
L.geoJson(piirid,{style:style});
功能高亮功能(e){
var层=e.目标;
layer.setStyle({
体重:5,
颜色:'#666',
dashArray:“”,
填充不透明度:0.7
});
如果(!L.Browser.ie&&!L.Browser.opera){
层。布氏体();
}
}
功能重置突出显示(e){
geojson.resetStyle(e.target);
}
var-geojson;
// ... 我们的听众
geojson=L.geojson(piirid);
函数ZoomTof性质(e){
fitBounds(e.target.getBounds());
}
功能onEachFeature3(功能,图层){
分层({
鼠标悬停:Highlight功能,
mouseout:resetHighlight,
//单击:缩放自然
});
}
geojson=L.geojson(piirid{
风格:风格,
onEachFeature:onEachFeature,
onEachFeature:onEachFeature3
});
功能onEachFeature(功能,图层){
if(feature.properties){
layer.bindPopup(“
Aadresss:”+feature.properties.L_AADRESS+”
Maakond:“+feature.properties.MK_NIMI
+“
”,{“偏移量”:[200,-50]});
}
}
谢谢,Kristjan将这两个函数结合起来,它们使用相同的参数,也可以作为一个函数来完成
function style(feature) {
return {
fillColor: 'blue',
weight: 2,
opacity: 1,
color: 'grey',
dashArray: '3',
fillOpacity: 0.7
};
}
L.geoJson(piirid, {style: style});
function highlightFeature(e) {
var layer = e.target;
layer.setStyle({
weight: 5,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});
if (!L.Browser.ie && !L.Browser.opera) {
layer.bringToFront();
}
}
function resetHighlight(e) {
geojson.resetStyle(e.target);
}
var geojson;
// ... our listeners
geojson = L.geoJson(piirid);
function zoomToFeature(e) {
map.fitBounds(e.target.getBounds());
}
function onEachFeature3(feature, layer) {
layer.on({
mouseover: highlightFeature,
mouseout: resetHighlight,
//click: zoomToFeature
});
if (feature.properties) {
layer.bindPopup("<br><b><big><u>Aadresss: " + feature.properties.L_AADRESS + "</br></b></big></u><br> <b>Maakond: </b>" + feature.properties.MK_NIMI
+ " <br><br>", {"offset": [200, -50]});
}
}
geojson = L.geoJson(piirid, {
style: style,
onEachFeature: onEachFeature3
});
功能样式(功能){
返回{
fillColor:'蓝色',
体重:2,
不透明度:1,
颜色:“灰色”,
dashArray:'3',
填充不透明度:0.7
};
}
L.geoJson(piirid,{style:style});
功能高亮功能(e){
var层=e.目标;
layer.setStyle({
体重:5,
颜色:'#666',
dashArray:“”,
填充不透明度:0.7
});
如果(!L.Browser.ie&&!L.Browser.opera){
层。布氏体();
}
}
功能重置突出显示(e){
geojson.resetStyle(e.target);
}
var-geojson;
// ... 我们的听众
geojson=L.geojson(piirid);
函数ZoomTof性质(e){
fitBounds(e.target.getBounds());
}
功能onEachFeature3(功能,图层){
分层({
鼠标悬停:Highlight功能,
mouseout:resetHighlight,
//单击:缩放自然
});
if(feature.properties){
layer.bindPopup(“
Aadresss:”+feature.properties.L_AADRESS+”
Maakond:“+feature.properties.MK_NIMI
+“
”,{“偏移量”:[200,-50]});
}
}
geojson=L.geojson(piirid{
风格:风格,
onEachFeature:onEachFeature3
});
为什么不直接使用css选择器:hover
而不是javascript?您可以更具体一点吗?当鼠标悬停事件发生时,您可以使用css:hover
选择器,而不是在javascript中手动设置样式。类似这样的东西:.layer:hover{color:grey;background color:blue;…}
我实际上是在点击时得到了它,我更喜欢它,但是无论如何谢谢你的回答,仍然需要让突出显示和弹出窗口一起工作
function style(feature) {
return {
fillColor: 'blue',
weight: 2,
opacity: 1,
color: 'grey',
dashArray: '3',
fillOpacity: 0.7
};
}
L.geoJson(piirid, {style: style});
function highlightFeature(e) {
var layer = e.target;
layer.setStyle({
weight: 5,
color: '#666',
dashArray: '',
fillOpacity: 0.7
});
if (!L.Browser.ie && !L.Browser.opera) {
layer.bringToFront();
}
}
function resetHighlight(e) {
geojson.resetStyle(e.target);
}
var geojson;
// ... our listeners
geojson = L.geoJson(piirid);
function zoomToFeature(e) {
map.fitBounds(e.target.getBounds());
}
function onEachFeature3(feature, layer) {
layer.on({
mouseover: highlightFeature,
mouseout: resetHighlight,
//click: zoomToFeature
});
if (feature.properties) {
layer.bindPopup("<br><b><big><u>Aadresss: " + feature.properties.L_AADRESS + "</br></b></big></u><br> <b>Maakond: </b>" + feature.properties.MK_NIMI
+ " <br><br>", {"offset": [200, -50]});
}
}
geojson = L.geoJson(piirid, {
style: style,
onEachFeature: onEachFeature3
});