完整的背景图像与淡入淡出效果

时间:2016-10-29 06:03:31

标签: css html5 background-image



.crossfade > div {
    animation: imageAnimation 30s linear infinite 0s;
    backface-visibility: hidden;
    background-size: cover;
    background-position: center center;
    color: transparent;
    height: 100%;
    left: 0px;
    opacity: 0;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 0;
  }

  .crossfade {
    height: 500px;
  }
  #fade1{
    background-image: url('../images/taxi.jpg');
  }
  #fade2 {
    animation-delay: 6s;
    background-image: url('../images/default.jpg');
  }
  #fade3 {
    animation-delay: 12s;
    background-image: url('../images/neuroBG.JPG');
  }
  #fade4 {
    animation-delay: 18s;
    background-image: url('../images/new4.jpeg');
  }
  #fade5 {
    animation-delay: 24s;
    background-image: url('../images/new3.jpg');
  }

  #fade6 {
    animation-delay: 30s;
    background-image: url('../images/new1.jpg');
  }

  #fade7 {
    animation-delay: 36s;
    background-image: url('../images/new2.jpeg');
  }

      <div class="crossfade">
            <div id="fade1"></div>
            <div id="fade2"></div>
            <div id="fade3"></div>
            <div id="fade4"></div>
            <div id="fade5"></div>
            <div id="fade6"></div>
            <div id="fade7"></div>
        </div>
&#13;
&#13;
&#13;

我希望像这个网站www.flitways.com

一样让背景图像淡入淡出

我试过复制过这个但图像没有正确消失。我觉得有些东西不见了。将不胜感激任何帮助。感谢。

1 个答案:

答案 0 :(得分:5)

要使图像正确淡入淡出,需要计算出看起来不错的百分比和时间,如下所示,或者只是为每个图像指定一个@keyframes规则。

  

对于“n”个图像,您必须定义:

     
      
  • a =一张图片的展示时间
  •   
  • b =交叉渐变的持续时间
  •   
  • 总动画持续时间当然是t =(a + b)* n
  •   
     

animation-delay = t / n或= a + b

     

关键帧的百分比:

     
      
  1. 0%
  2.   
  3. A / T * 100%
  4.   
  5. (a + b)/ t * 100%= 1 / n * 100%
  6.   
  7. 100% - (B / T * 100%)
  8.   
  9. 100%
  10.   

Src:http://css3.bradshawenterprises.com/cfimg/

.crossfade > div {
  animation: imageAnimation 8s linear infinite;
  backface-visibility: hidden;
  background-size: cover;
  background-position: center center;
  color: transparent;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
}
.crossfade {
  height: 500px;
}
@keyframes imageAnimation {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

.crossfade div:nth-of-type(1) {
  background-image: url(http://placehold.it/200/f00);
  animation-delay: 6s;
}
.crossfade div:nth-of-type(2) {
  background-image: url(http://placehold.it/200/0b0);
  animation-delay: 4s;
}
.crossfade div:nth-of-type(3) {
  background-image: url(http://placehold.it/200/00f);
  animation-delay: 2s;
}
.crossfade div:nth-of-type(4) {
  background-image: url(http://placehold.it/200/ff0);
  animation-delay: 0;
}
<div class="crossfade">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>