动态调整图像映射和图像的大小

我目前正在尝试在我的网站上制作一个图像地图,该图像地图会根据窗口的大小进行调整…我想知道是否可以通过HTML来执行此操作,还是必须使用Javascript或其他方式来执行此操作?语言。

<div style="text-align:center; width:1920px; margin-left:auto; margin-right:auto;">

<img id="Image-Maps_5201211070133251" src="Site.png" usemap="#Image-Maps_5201211070133251" border="0" width="1920" height="1080" alt="" />

<map id="_Image-Maps_5201211070133251" name="Image-Maps_5201211070133251">

<area shape="poly" coords="737,116,1149,118,944,473," href="http://essper.bandcamp.com" alt="Bandcamp" title="Bandcamp" />

<area shape="poly" coords="1006,589,1418,590,1211,945," href="http://soundcloud.com/essper" alt="Soundcloud" title="Soundcloud" />

<area shape="poly" coords="502,590,910,591,708,944," href="http://facebook.com/the.essper" alt="Facebook" title="Facebook" />

</map>

回答:

如果最终使用JavaScript完成任务,则可以使用以下跨浏览器代码段来调整MAP元素中所有区域的大小。

window.onload = function () {

var ImageMap = function (map) {

var n,

areas = map.getElementsByTagName('area'),

len = areas.length,

coords = [],

previousWidth = 1920;

for (n = 0; n < len; n++) {

coords[n] = areas[n].coords.split(',');

}

this.resize = function () {

var n, m, clen,

x = document.body.clientWidth / previousWidth;

for (n = 0; n < len; n++) {

clen = coords[n].length;

for (m = 0; m < clen; m++) {

coords[n][m] *= x;

}

areas[n].coords = coords[n].join(',');

}

previousWidth = document.body.clientWidth;

return true;

};

window.onresize = this.resize;

},

imageMap = new ImageMap(document.getElementById('map_ID'));

imageMap.resize();

}

previousWidth必须等于原始图像的宽度。您还需要在HTML中使用一些相对单位:

<div style="width:100%;">

<img id="Image-Maps_5201211070133251" src="Site.png" usemap="#Image-Maps_5201211070133251" border="0" width="100%" alt="" />

以上是 动态调整图像映射和图像的大小 的全部内容, 来源链接: utcz.com/qa/401527.html

回到顶部