【发布时间】:2019-10-27 16:32:20
【问题描述】:
我正在研究 SVG,我的概念是我有两个图像.overlap,并使用 svg 多边形制作了五个不同的三角形。我的目标是实现第一次覆盖完整的图像显示,并且当悬停在三角形形状背景上时需要显示.box 框图像。
这是我在给出叠加图像之前的初始代码。
.box {
position: relative;
background-image: url('https://picsum.photos/id/1/1000/800');
background-repeat: no-repeat;
width: 100%;
height: 600px;
background-size: cover;
}
polygon {
stroke-width: 1;
stroke: red;
fill: #ffffff;
}
polygon:hover {
fill: transparent;
}
<div class="box">
<svg viewbox="0 0 200 100">
<polygon points="0,100 100,100 0,50 "
style="stroke:#000000;"/>
<polygon points="0,50 100,100 50,00 0,0 "
style="stroke:#000000;"/>
<polygon points="100,100 50,00 150,0"
style="stroke:#000000;"/>
<polygon points="100,100 200,50 200,0 150,0"
style="stroke:#000000;"/>
<polygon points="100,100 200,100, 200,50"
style="stroke:#000000;"/>
</svg>
</div>
现在我添加了覆盖图像需要位于.box 图像和polygons 形状之上。现在,悬停我想像这样以当前多边形形状显示 .box 图像
代码在这里
.box {
position: relative;
background-image: url('https://picsum.photos/id/1/1000/800');
background-repeat: no-repeat;
width: 100%;
height: 600px;
background-size: cover;
}
polygon {
stroke-width: 1;
stroke: red;
fill: #ffffff;
}
polygon:hover {
fill: transparent;
}
.overlay:hover polygon {
z-index: 100;
}
.overlay {
position: absolute;
background-image: url('https://picsum.photos/id/118/1000/800');
background-repeat: no-repeat;
width: 100%;
height: 600px;
background-size: cover;
z-index: 10;
}
<div class="overlay"></div>
<div class="box">
<svg viewbox="0 0 200 100">
<polygon points="0,100 100,100 0,50 "
style="stroke:#000000;"/>
<polygon points="0,50 100,100 50,00 0,0 "
style="stroke:#000000;"/>
<polygon points="100,100 50,00 150,0"
style="stroke:#000000;"/>
<polygon points="100,100 200,50 200,0 150,0"
style="stroke:#000000;"/>
<polygon points="100,100 200,100, 200,50"
style="stroke:#000000;"/>
</svg>
</div>
任何人都可以在悬停时帮我解决这个问题,我们需要调整 div 的 z-indexes 和多边形填充。
【问题讨论】: