html - 映射元素的背景图像

标签 html css imagemap

我知道我们有<map><area>用于映射图像。我想使用这个的多边形模式。

但想象一下我有一个 div具有背景图像的元素,我想映射背景图像,如 <img> .

我的形状不是长方形或正方形;它是一个多边形。而且我不想使用透明 div 技巧。

我怎样才能映射这个?

最佳答案

使用带有图像映射的透明图像(例如,使用 opacity:0),将其放置在 div 上。这个效果是怎么样的ImageMapster插件有效。

我写了一个blog post这解释了这些效果是如何发挥作用的。总而言之,您可以在任何您想要的内容之上使用 HTML 图像映射。您需要做的就是确保 img 具有最高的 z-index,并且是透明的,并且绝对位于您想要的元素的顶部 -用户实际看到。如果它是透明的,最终用户将只能看到其后面的内容,从而使您可以完全灵活地在任何其他类型的元素(例如 div)上使用图像映射的多边形位置跟踪功能。

示例:

<div id="container">
    <img style="position: absolute; top: 0; left: 0; opacity: 0; 
                width: 100px; height: 100px;" 
         src="/placeholder.jpg" 
         usemap="#my-image-map">
    <div style="position: absolute; top: 0; left:0; 
                background-image: url(/some-100-by-100-pixel-image.jpg)">
</div>

关于html - 映射元素的背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15998331/

相关文章:

css - 以边距 : 0 auto; vs. 居中对齐内容和 flexbox

javascript - 图片库 - 移动设备优化

html - 带有滚动和自动大小列的表格

javascript - 在鼠标悬停时更改映射图像热点的背景

javascript - 如何防止图像 map 区域点击传播到链接?

javascript - Safari CSS3 变换高度限制

javascript - jQuery Click 事件触发多个元素(我只想要 1)

javascript - 与巧克力 js 循环的全屏图像

html - 为什么 Flexbox 中的强文本表现为列?

html - 悬停时图像映射更改图像