我目前正在制作一个旨在进行测试的网站。它有一个图像和一个图像映射,我正在尝试使用 JavaScript 来获取客户端屏幕大小并调整图像大小以适应客户端屏幕尺寸,但当我这样做时,图像映射不是我需要的。有没有办法让图像映射保持在同一位置,而不必在绘画或 Photoshop 中"物理"调整图像大小。我的网站(没有获取客户端屏幕尺寸)。基本上,我正在尝试使图像适合他们的屏幕,以便更容易导航测试,它逼真,但不会搞砸我的图像映射定位。任何肝将不胜感激。
`<map name="desktopmap" >
<area onclick="correct();" shape="rect" coords="1,575,38,597" href="OS2.html" >
</map>
<img onclick=" wrong('OS2');" src = "../Pic/desktop.png" usemap = "#desktopmap" >`
谢谢。
您可以做的是使用具有基于百分比的坐标和维度的绝对定位的div,并将您的点击事件挂接到这些坐标和维度中。这应该可以让您的隐形"按钮"与图像很好地缩放。图像映射有点过时,不是很灵活。
小提琴示例(使用正确/错误的函数更新):
http://jsfiddle.net/3ZLeK/1/
示例新 HTML 结构:
<div class="wrap">
<img class="bg" src="http://i.imgur.com/WgsCTDj.gif" />
<div class="box box1"></div>
</div>
示例新 CSS:
.wrap {
position: relative;
overflow: auto;
}
.bg {
float: left;
width: 100%;
}
.box {
position: absolute;
cursor: pointer;
}
.box1 {
top: 95%;
left: 0;
width: 7%;
height: 5%;
}
在小提琴中,我还更改了内联 Javascript 处理以使用事件处理程序,因为这些属性处理程序也已经过时了。
您可以使用媒体查询来重新缩放/缩放地图。这里有两个实验测试:http://dabblet.com/gist/5586117 和 http://codepen.io/gcyrillus/pen/AJHmt
如果您遵循这个想法,并考虑使用zoom + javascript而不是mediaquerie来包含较旧的浏览器,例如IE,请注意某些版本的IE可以理解:transform:scale(x); 和zoom:X; 确保在这种情况下不要重新调用两次。
基本上,坐标是像素坐标,缩放是唯一的方法,除非你修改每个坐标的每个值:)
。不太确定我的英语是否足够清晰/正确。