图像映射在 Firefox 中不起作用!在 Chrome+Safari 中运行良好
Posted
技术标签:
【中文标题】图像映射在 Firefox 中不起作用!在 Chrome+Safari 中运行良好【英文标题】:Image Map not working in Firefox! works fine in Chrome+Safari 【发布时间】:2013-04-05 18:16:42 【问题描述】:我制作了一张图片地图,但它在 Firefox 中不起作用。它在 Chrome 和 Safari 中都能正常工作。
这是网站 bryanedwardcollins.com
请帮忙!
<MAP NAME="menumap" >
<AREA
HREF="contact.html" ALT="contact"
SHAPE="POLY" COORDS="425,100, 572,89, 594,142, 488,150, 460,166, 423,100">
<AREA
HREF="insameit.html" ALT="insame i.t."
SHAPE="POLY" COORDS="382,239, 462,245, 461,343, 608,344, 610,395, 354,405, 354,341">
<AREA
HREF="floorpart.html" ALT="floor part"
SHAPE="POLY" COORDS="307,185, 429,185, 430,221, 379,222, 374,235, 283,224">
<AREA
HREF="iouse.html" ALT="I O Use"
SHAPE="POLY" COORDS="27,18, 231,16, 243,0, 382,0, 253,265, 69,252, 193,73, 27,73">
<AREA
HREF="worldpart.html" ALT="world part"
SHAPE="POLY" COORDS="25,303, 122,305, 122,448, 27,449">
</MAP>
【问题讨论】:
你和这个提问者有同样的问题。您的<img>
标签需要一个井号:<img usemap="#menumap">
***.com/questions/8479798/…
【参考方案1】:
Firefox 中的另一个 <map
问题及其解决方案 - 确保您没有在 <map>
中使用任何锚(<a>
)元素。如果<map>
有任何<a>
子元素,Firefox 将忽略整个<map>
元素。
显然不要使用<a>
元素,因为<area>
具有href
属性,但是,例如,在Ember.js 中,编写这样的代码对我很有用:
<map id='human-image-map' name='human-image' action='showTooltip'>
<section class="front" title="Pokaż ćwiczenia">
#link-to 'training.shoulders'
<area shape="poly" coords="39,74,37,75,35,77,33,78,32,76,32,73,32,71,32,68,33,65,33,63,34,61,36,58,37,56,38,54,40,53,42,52,44,51,46,51,48,51,51,50,55,49,57,48,59,47,61,47,59,50,58,52" />
<area shape="poly" coords="112,74,114,75,117,77,119,79,121,77,121,74,121,71,121,68,119,65,117,62,116,59,113,57,111,54,109,53,106,51,103,50,99,49,96,47,93,46,90,45,90,48,92,50,93,52,95,54,97,56,99,59,101,62,103,65,106,68" />
/link-to
</section>
</map>
我无法手动指定href
属性,最好将其留给link-to
助手。
我的具体 Ember.js 问题的解决方案是使用另一个标签而不是 <a>
。所以,将tagName='span'
添加到link-to
helper 解决了我的问题:
#link-to 'training.shoulders' tagName='span'
<!-- ... -->
/link-to
注意:在 Chrome 中 <a>
中的 <map>
元素可以正常工作。
【讨论】:
【参考方案2】:我也偶然发现了这个问题。似乎Chrome会解析没有#符号的img属性usemap="mapName"。但是,如果您不包含井号“#”,则地图将不会与 FireFox 和 Internet Explorer 上的图像相关联。
这是正确的做法:
<img src="images/header.jpg" id="hdr" name="hdr" usemap="#hdrMap" border="0">
<map name="hdrMap" style="cursor:pointer;">
<area shape="rect" coords="720,65,880,0" href="http://www.thisisthefirstlink.com" target="_blank" >
<area shape="rect" coords="882,65,1024,0" href="http://www.secondlink.com" target="_blank" >
</map>
请注意,usemap="#hrdMap" 有一个井号标记符号,并且与 map 标记的 name="hdrMap" 属性相匹配。这似乎有点令人困惑,因为很多人将 # 符号与引用 id 属性相关联。
希望对你有帮助
【讨论】:
就是这个问题,firefox太他妈标准了。以上是关于图像映射在 Firefox 中不起作用!在 Chrome+Safari 中运行良好的主要内容,如果未能解决你的问题,请参考以下文章
使用 nameProp 的 JQuery 图像翻转在 Firefox 和 Chrome 中不起作用
Jquery Animate 背景图像在悬停时摇摆在 Firefox 中不起作用