使用CSS延迟淡出淡出



让我首先说我是新手开发人员(甚至低于此),所以,如果我不太解释自己,我深表歉意。

我正在尝试获得有关我们产品的几次客户评论,以溅到屏幕上(fadein1,delay,fadeout1),(fadein2,delay,delay,fadeout2)等但是我似乎无法让他们一起工作。以下代码只会淡出。有人可以让我知道我在做什么错吗?预先感谢...

/* keyframes that tell the start state and the end state of our object */
 
@-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; }}
@-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; }}
@keyframes fadeIn { from { opacity:0; } to { opacity:1; }}
@-webkit-keyframes fadeOut { from { opacity:1; } to { opacity:0; }}
@-moz-keyframes fadeOut { from { opacity:1; } to { opacity:0; }}
@keyframes fadeOut { from { opacity:1; } to { opacity:0; }}
 
.fade-in {
	opacity:0;  /* make things invisible upon start */
	-webkit-animation:fadeIn ease-in 1;  /* call keyframe named fadeIn, use animattion ease-in and repeat it only 1 time */
	-moz-animation:fadeIn ease-in 1;
	animation:fadeIn ease-in 1;
	 
	-webkit-animation-fill-mode:forwards;  /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 1)*/
	-moz-animation-fill-mode:forwards;
	animation-fill-mode:forwards;
 	-webkit-animation-duration:1s;
	-moz-animation-duration:1s;
	animation-duration:1s;
}
.fade-out {
	opacity:1;  /* make things visible upon start */
	-webkit-animation:fadeOut ease-out 1;  /* call keyframe named fadeOut, use animattion ease-out and repeat it only 1 time */
	-moz-animation:fadeOut ease-out 1;
	animation:fadeOut ease-out 1;
 
	-webkit-animation-fill-mode:forwards;  /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 0)*/
	-moz-animation-fill-mode:forwards;
	animation-fill-mode:forwards;
 
	-webkit-animation-duration:1s;
	-moz-animation-duration:1s;
	animation-duration:1s;
	
	-webkit-animation-delay: 3s;
	-moz-animation-delay: 3s;
	animation-delay: 3s;
}
 
.fade-in.fade-out.one {
-webkit-animation-delay: 0.7s;
-moz-animation-delay: 0.7s;
animation-delay: 0.7s;
}
 
.fade-in.fade-out.two {
-webkit-animation-delay: 1.2s;
-moz-animation-delay:1.2s;
animation-delay: 1.2s;
}
 
.fade-in.fade-out.three {
-webkit-animation-delay: 1.6s;
-moz-animation-delay: 1.6s;
animation-delay: 1.6s;
}
 
/*---basic box ---*/
.box{
width: 200px;
height: 200px;
position: relative;
margin: 10px;
float: left;
border: 1px solid #333;
background: #999;
}
<body>
<div class="box fade-in fade-out one">
       look at me fade in and out
</div>
 
<div class="box fade-in fade-out two">
       i can fade too!
</div>
 
<div class="box fade-in fade-out three">
       i can fade three!
</div>
 
</body>

您的原始代码非常接近。基于@ilovecss的答案和您对动画延迟的使用,我认为这是您要寻找的效果:

@keyframes fade {
   0% { opacity: 0 }
  20% { opacity: 1 } /* 20% of 5 seconds = 1 second */
  80% { opacity: 1 }
  100% { opacity: 0 }
}
 
.fade {
  opacity:0;
  animation: fade ease-in-out 5s;
  animation-fill-mode: forwards;
}
.fade:nth-child(2) { animation-delay: 0.25s; }
.fade:nth-child(3) { animation-delay: 0.5s; }
.box{
  width: 100px;
  height: 100px;
  position: relative;
  margin: 10px;
  float: left;
  border: 1px solid #333;
  background: #999;
}
<div class="box fade">Box 1</div>
<div class="box fade">Box 2</div>
<div class="box fade">Box 3</div>

您可以使用%框架而不是 Simplify

您可以控制.box动画选择器下的动画速度。

@-webkit-keyframes myfade {
  0% {
    opacity: 0
  }
  20% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  40% {
    opacity: 1
  }
  50% {
    opacity: 1
  }
  60% {
    opacity: 1
  }
  70% {
    opacity: 0
  }
  80% {
    opacity: 0
  }
  100% {
    opacity: 0
  }
}
@-moz-keyframes myfade {
  0% {
    opacity: 0
  }
  20% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  40% {
    opacity: 1
  }
  50% {
    opacity: 1
  }
  60% {
    opacity: 1
  }
  70% {
    opacity: 0
  }
  80% {
    opacity: 0
  }
  100% {
    opacity: 0
  }
}
@keyframes myfade {
  0% {
    opacity: 0
  }
  20% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  40% {
    opacity: 1
  }
  50% {
    opacity: 1
  }
  60% {
    opacity: 1
  }
  70% {
    opacity: 0
  }
  80% {
    opacity: 0
  }
  100% {
    opacity: 0
  }
}
.box {
  width: 200px;
  height: 200px;
  position: relative;
  margin: 10px;
  float: left;
  border: 1px solid #333;
  background: #999;
  animation: myfade 8s;
  opacity: 0
}
<body>
  <div class="box fade-in fade-out one">
    look at me fade in and out
  </div>
  <div class="box fade-in fade-out two">
    i can fade too!
  </div>
  <div class="box fade-in fade-out three">
    i can fade three!
  </div>
</body>

最新更新