之前我们在“圳品”信息系统中实现了在网页地图图片上加注企业和“圳品”数量信息,实现的方法是直接用document.write在<body>里输出<div>来实现的。详见:

在网页地图图片上加注企业和“圳品”数量信息

在引入tab选项卡来进行分类显示后,这些显示企业和“圳品”数量信息的<div>在切换选项卡时就不听指挥了。为此,我们做了改进,通过地图图片所在<div>的innerHTML来增加<div >显示企业和“圳品”数量信息,也就是将这些显示企业和“圳品”数量信息的<div>的父元素从<body>改为地图图片所在<div>,在切换选项卡时,隐藏地图图片所在<div>,显示企业和“圳品”数量信息的<div>作为子元素也将隐藏。

具体代码如下:

<html>
<head>
  <meta name="Author" content="PurpleEndurer">
  <title>“圳品”信息系统</title>
    <style type="text/css">
 	.ts
	{
		font-size:14px;text-align:center;color:orange;
		text-shadow:
			-1px -1px 0 #4f4d57,  
			1px -1px 0 #4f4d57,
			-1px 1px 0 #4f4d57,
			1px 1px 0 #4f4d57,
			0px 2px 2px rgba(0,0,0,0.6);
	}
 </style>
</ead>
<body>
<div id="divMap" style="border:1px solid red;">
<img
src="http://img.mp.itc.cn/q_70,c_zoom,w_640/upload/20170507/4c68610712bc408d892d205d0e321655_th.jpeg" border="0" usemap="#planetmap" alt="Planets" style="margin-top:0px;" id="mapHc" />
</div>
<textarea border="1" id="taDebug"  cols="180" rows="15">debug</textarea>
<script>
var taDbg = document.getElementById("taDebug");
function getElementPagePosition(e)
{
  //计算x坐标
  var actualLeft = e.offsetLeft;
  var current = e.offsetParent;
  while (current !== null)
  {
    actualLeft += current.offsetLeft;
    current = current.offsetParent;
  }
  //计算y坐标
  var actualTop = e.offsetTop;
  var current = e.offsetParent;
  while (current !== null)
  {
    actualTop += (current.offsetTop+current.clientTop);
    current = current.offsetParent;
  }
  //返回结果
  return {x: actualLeft, y: actualTop}
}
  //县区div在河池地图上的参数
  //参数说明:1:div顶部偏移px,2:div左侧偏移px,3:div宽度px(指定style中的width)
  aAreaMapCoordinate = new Array(
    [0,0],    //hc,0
    [245,270],//jcj,1
    [280,420],//yz,2
    [190,480,70],//lc,3
    [145,335],//hj,4
    [150,220,70],//nd,5
    [155,110,70],//te,6
    [285,200,70],//dl,7
    [350,140,70],//bm,8
    [265,100,70],//fs,9
    [360,350,70],//da,10
    [380,250,70] //dh,11
    );
    //alert(document.getElementById("mapHc"));
    var mapHcLeftTop = getElementPagePosition(document.getElementById("mapHc"));
    var i;
    var divMap = document.getElementById("divMap");
    for (i=0; i <12 ; i++)
    {
        //document.write('<div class="ts" id="area', i, '" style="position: absolute;top:', aAreaMapCoordinate[i][0]+mapHcLeftTop.y, 'px;left:', aAreaMapCoordinate[i][1]+mapHcLeftTop.x,'px;',(typeof(aAreaMapCoordinate[i][2])!="undefined"? 'width:'+aAreaMapCoordinate[i][2]+'px': null),';z-index: 1;">','xx家企业xx个圳品','</div>');
	divMap.innerHTML +=  '<div class="ts" id="area' + i + '" style="position: absolute;top:'+ (aAreaMapCoordinate[i][0]+mapHcLeftTop.y)+ 'px;left:'+ (aAreaMapCoordinate[i][1]+mapHcLeftTop.x)+'px;'+(typeof(aAreaMapCoordinate[i][2])!="undefined"? 'width:' + aAreaMapCoordinate[i][2]+'px;': '')+'z-index: 1;">' + 'xx家企业xx个圳品</div>';
	//divMap.innerHTML +=  '<div class="ts" id="area', i, '" >','xx家企业xx个圳品','</div>'	
	taDbg.value += '\n\ni=' + i + '\n' + divMap.innerHTML;
    }
document.getElementById('r').innerText =  divMap.innerHTML;
</script>
</body>
</html>

显示效果如下:

在网页地图图片上加注企业和“圳品”数量信息+1_JavaScript