我正在尝试创建一个特殊的盒子效果,但是我很难理解我应该如何从右到左缓慢出现(CSS中的过渡属性),而不是通常的Left向右。
以下是一些代码:
.box {
display: block;
margin: 3em;
width: 360px;
height: 420px;
border: 1px solid #333;
text-align: center;
}
.slice-mid {
position: absolute;
margin: 0;
top: 370px;
width: 0px;
height: 140px;
background-color: white;
z-index: 2;
visibility: hidden;
}
.box:hover .slice-mid {
visibility: visible;
width: 360px;
transition: 1.3s ease-in-out;
}
<div class="box">
<div class="bg-img"></div>
<div class="slice-top"></div>
<div class="slice-mid"></div>
<div class="slice-bot"></div>
</div>
我得到了一张背景图片,悬停时会出现三个块以覆盖整个图像。它们必须来自不同的原点,由奇数表示,所以说顶部框从左到右,中间框从右到左,底部框从左到右。你抓住了漂移。我遇到了中间盒子的问题。
答案 0 :(得分:2)
您需要将.slice-mid
置于绝对右侧。这样,当它扩展时,它只能向左扩展。将position:relative;
放在.box
上,这样切片就会根据其父级定位。
.box {
display: block;
margin: 3em;
width: 360px;
height: 420px;
border: 1px solid #333;
text-align: center;
position:relative;
}
.slice-mid {
position: absolute;
margin: 0;
top: 370px;
width: 0px;
right:0px;
height: 140px;
background-color: white;
z-index: 2;
visibility: hidden;
}
.box:hover .slice-mid {
visibility: visible;
width: 360px;
transition: 1.3s ease-in-out;
}
<div class="box">
<div class="bg-img"></div>
<div class="slice-top"></div>
<div class="slice-mid"></div>
<div class="slice-bot"></div>
</div>