我想要构建一个无限画廊,具有以下布局:期望结果(第一张图片也有边框)。
正如您所看到的,只有当前活动的图片是可见的,并且未激活的图片仅通过其边框指示,容器是半透明的。
现在让这变得有点棘手的是,边框不是一个普通的矩形,而是偏移成了平行四边形。为了实现这一点,我尝试了以下两种方法:
倾斜
我的第一种方法是使用CSS的transform: skewX(deg);
不幸的是,倾斜不仅会移动而且还会扭曲图片...
剪切路径
采用以下布局:
<div class="wrapper">
<img></img>
</div>
样式:
.wrapper {
clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
background: black;
}
img {
clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
transform: scale(0.95);
}
我成功地使我的边框发生了偏移。但问题在于,当图片不再处于活动状态且应该变得透明时,我的虚假边框会被暴露出来,因为整个容器会变成黑色。
所以我想知道将容器的边框进行偏移并将图像放置在其中的最佳方法,以便它可以淡化并且背景半透明。
这是一个代码片段:
div[class*="wrapper"] {
height: 100px;
width: 200px;
margin: 1em;
}
img {
width: 100%;
height: 100%;
}
.wrapper-clippath {
background: black;
clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
}
.wrapper-clippath img {
clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
transform: scale(0.985);
animation: opacity 1s infinite alternate;
}
.wrapper-skew {
transform: skewX(-25deg);
border: 1px solid black;
}
@keyframes opacity {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
<h1>With Skew</h1>
<p>Image gets distorted</p>
<div class="wrapper-skew">
<img src="https://www2.tuhh.de/zll/wp-content/uploads/placeholder.png">
</div>
<h1>With clippath</h1>
<p>Background is black and not translucent when image is faded out</p>
<div class="wrapper-clippath">
<img src="https://www2.tuhh.de/zll/wp-content/uploads/placeholder.png">
</div>