在做自适应网页的时候,如果在图片中使用了热区map。图片可以通过样式实现:图片大小随页面变化,MAP中每个area的坐标也随页面等比例的变化效果。根据分辨率自适应热区坐标
<style>
img{
display:block;max-width:1920;width: 100%;border: 0;
}
</style>
<img src="src/1.jpg" usemap="#planetmap"/>
<map name="planetmap" id="planetmap">
<area shape="rect" coords="0,0,110,200" href="#"/>
<area shape="rect" coords="50,50,200,200" href="#"/>
</map>
<script>
var initwidth=null,//初始图片宽度
area=document.getElementsByTagName('area'),
initarea=null;//初始数据保存
function init(){//初始化
initwidth=1920;
initarea=new Array(area.length-1);
for(var i=0;i<area.length;i++){
initarea[i]=area[i].getAttribute("coords");
}
}
function setCoords(){//根据分辨率自适应热区坐标
var width=document.body.offsetWidth,
percent=width/initwidth;
for(var i=0;i<area.length;i++){
var coords=initarea[i],
arr=coords.split(",");
for(var j=0;j<arr.length;j++){
arr[j] *= percent;
}
area[i].setAttribute("coords",arr.join(","));
}
}
//使用
init();
window.onresize = function () {
setCoords();
}
</script>