我正在使用JVectorMap
。如果它们在地图创建期间定义,它会很好地呈现静态国家/地区标签,如示例http://jvectormap.com/examples/region-labels/
我的问题是:onRegionSelected
或onRegionClick
点火时是否可以显示国家/地区标签?
答案 0 :(得分:0)
这真的很有趣!
无论如何,您只需应用hidden
样式即可初始化固定标签。在那之后,这里棘手的部分是如何覆盖应用的样式。在我的例子中,我没有使用onRegionSelected
回调中提供的任何参数,但我直接转到SVG元素。通过这样做,您将获得与onClick
和onRegionSelected
事件兼容的功能。
以下是 DEMO :
$(document).ready(function () {
$("#map").vectorMap({
map: "us_aea",
backgroundColor: "aliceblue",
zoomOnScroll: true,
regionsSelectable: true,
onRegionSelected: function(){
var regions = $("#map").vectorMap("get", "mapObject").regions;
var visible = "visibility: visible;", hidden = "";
for(var key in regions) {
var label = regions[key].element.label;
if(label) {
label.node.setAttribute('style', label.isSelected ? visible : hidden);
}
}
},
regionStyle: {
initial: {
fill: "lightgrey"
},
selected: {
fill: "orange"
}
},
labels: {
regions: {
render: function(code){
var doNotShow = ['US-RI', 'US-DC', 'US-DE', 'US-MD'];
if (doNotShow.indexOf(code) === -1) {
return code.split('-')[1];
}
},
offsets: function(code){
return {
'CA': [-10, 10],
'ID': [0, 40],
'OK': [25, 0],
'LA': [-20, 0],
'FL': [45, 0],
'KY': [10, 5],
'VA': [15, 5],
'MI': [30, 30],
'AK': [50, -25],
'HI': [25, 50]
}[code.split('-')[1]];
}
}
}
});
});
text.jvectormap-region {
visibility: hidden;
}
<html>
<head>
<title>jVectorMap Areas</title>
<link rel="stylesheet" href="http://jvectormap.com/css/jquery-jvectormap-2.0.3.css" type="text/css">
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="http://jvectormap.com/js/jquery-jvectormap-2.0.3.min.js"></script>
<script src="http://jvectormap.com/js/jquery-jvectormap-us-aea.js"></script>
</head>
<body>
<div id="map" style="width: 600px; height: 400px"></div>
</body>
</html>