CSS转换:让它从右到左,而不是从左到右

时间:2018-03-22 15:37:12

标签: css css-transitions reverse

我正在尝试创建一个特殊的盒子效果,但是我很难理解我应该如何从右到左缓慢出现(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>

我得到了一张背景图片,悬停时会出现三个块以覆盖整个图像。它们必须来自不同的原点,由奇数表示,所以说顶部框从左到右,中间框从右到左,底部框从左到右。你抓住了漂移。我遇到了中间盒子的问题。

1 个答案:

答案 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>