2016-12-15 44 views
0

讓我首先說我是新手開發人員(甚至可能低於此),所以,如果我沒有很好地解釋自己,我很抱歉。 (FadeIn1,延遲,FadeOut1),(FadeIn2,延遲,FadeOut2)等我可以得到淡入和淡出的工作但我似乎無法讓他們一起工作。下面的代碼只能淡出它。有人可以讓我知道我做錯了什麼嗎?在此先感謝...使用CSS淡入淡出使用延遲

/* 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 { 
 
\t opacity:0; /* make things invisible upon start */ 
 
\t -webkit-animation:fadeIn ease-in 1; /* call keyframe named fadeIn, use animattion ease-in and repeat it only 1 time */ 
 
\t -moz-animation:fadeIn ease-in 1; 
 
\t animation:fadeIn ease-in 1; 
 
\t 
 
\t -webkit-animation-fill-mode:forwards; /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 1)*/ 
 
\t -moz-animation-fill-mode:forwards; 
 
\t animation-fill-mode:forwards; 
 

 
    \t -webkit-animation-duration:1s; 
 
\t -moz-animation-duration:1s; 
 
\t animation-duration:1s; 
 
} 
 

 
.fade-out { 
 
\t opacity:1; /* make things visible upon start */ 
 
\t -webkit-animation:fadeOut ease-out 1; /* call keyframe named fadeOut, use animattion ease-out and repeat it only 1 time */ 
 
\t -moz-animation:fadeOut ease-out 1; 
 
\t animation:fadeOut ease-out 1; 
 
    
 
\t -webkit-animation-fill-mode:forwards; /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 0)*/ 
 
\t -moz-animation-fill-mode:forwards; 
 
\t animation-fill-mode:forwards; 
 
    
 
\t -webkit-animation-duration:1s; 
 
\t -moz-animation-duration:1s; 
 
\t animation-duration:1s; 
 
\t 
 
\t -webkit-animation-delay: 3s; 
 
\t -moz-animation-delay: 3s; 
 
\t 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>

回答

0

可以使用%幀,而不是簡化動畫。

您可以控制.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>

0

你原來的代碼是非常接近的。於@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>