CSS褪色多个图像。延迟不透明度转换。 Webkit转换延迟

时间:2015-02-16 12:41:19

标签: jquery css css-transitions fadein opacity

我试图将3张图像叠加在一起。仅使用CSS过渡。

这是我的代码:

http://codepen.io/FredHair/pen/MYQZJv?editors=110

我设法淡入第一张图片,但我不确定如何正确延迟并淡入第三张图片。

我在这里发现了很多与此类似的问题,但它们都没有帮助我破译实现此目的所需的确切代码。

我的代码:

HTML

<body>
 <div id="fadeImage">
<img id="image1" src="http://testdigits.com/wp-   content/uploads/2015/02/OpacAnimFrame1.png" alt="OpacAnimFrame1" >
<img id="image2" src="http://testdigits.com/wp-content/uploads/2015/02/OpacAnimFrame2.png" alt="OpacAnimFrame2" >
<img id="image3" src="http://testdigits.com/wp-content/uploads/2015/02/OpacAnimFrame3.png" alt="OpacAnimFrame3" >
</div>

CSS

#image1{
position: absolute;
left: 200px;
z-index: 3;
}

#image2{
 position: absolute;
 left: 200px;
z-index: 2;
}

#image3{
position: absolute;
left: 200px;
z-index: 1;
}

#image1:hover{
-webkit-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
-o-transition: opacity 1s linear;
-ms-transition: opacity 1s linear;
opacity: 0;
transition-delay:1s;
}

#image2:hover {
-webkit-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
-o-transition: opacity 1s linear;
-ms-transition: opacity 1s linear;
opacity: 0;
transition-delay:3s;
}
}

我想最好只使用CSS来实现这个目标,但如果你知道一个简单的jQuery修复,我也希望看到它。

感谢您的任何帮助

MRB

1 个答案:

答案 0 :(得分:1)

您需要在:hover上设置#fadeImage而不是单个图片。这是我的解决方案:

#fadeImage {
  position: relative;
}

#fadeImage img {
  position: absolute;
  top: 0px;
  left: 0px;
  opacity: 1;
  transition: opacity 1s linear;
}

#image1 {
  z-index: 3;
}

#image2 {
  z-index: 2;
}

#image3 {
  z-index: 1;
}

#fadeImage:hover #image1 {
  opacity: 0;
}

#fadeImage:hover #image2 {
  opacity: 0;
  transition-delay: 3s;
}
<div id="fadeImage">
  <img id="image1" src="http://testdigits.com/wp-content/uploads/2015/02/OpacAnimFrame1.png" alt="OpacAnimFrame1" >
  <img id="image2" src="http://testdigits.com/wp-content/uploads/2015/02/OpacAnimFrame2.png" alt="OpacAnimFrame2" >
  <img id="image3" src="http://testdigits.com/wp-content/uploads/2015/02/OpacAnimFrame3.png" alt="OpacAnimFrame3" >
</div>