2017-02-14 404 views
0

我試圖編碼此文字動畫效果(please see video)但我離解決方案還很遙遠!@keyframes動畫文字淡入淡出

你能幫我嗎?也許更好地使用JS?

h1.fadeinone { animation: fadeinone 10s;} 
 
h1.fadeintwo { animation: fadeintwo 10s;} 
 
h1.fadeinthree { animation: fadeinthree 10s;} 
 

 
@keyframes fadeinone { 
 
    0% { 
 
    opacity: 0; 
 
    } 
 
    33% { /* 3s for fade in */ 
 
    opacity: 1; 
 
    } 
 

 
} 
 

 
@keyframes fadeintwo { 
 
    0% { 
 
    opacity: 0; 
 
    } 
 

 
    66% { /* 3s for fade in */ 
 
    opacity: 1; 
 
    } 
 
} 
 

 
@keyframes fadeinthree{ 
 
    0% { 
 
    opacity: 0; 
 
    } 
 

 
    100% { /* 3s for fade in */ 
 
    opacity: 1; 
 
    } 
 
} 
 

 
#claim h1 { 
 

 
font-size: 40px; 
 
line-height:40px; 
 
margin:0px; 
 
padding:0px; 
 
color:#FFF; 
 
} 
 

 
#claim {background-color:red;}
<div id="claim"> 
 
<h1 class="fadeinone">DESIGN</h1> 
 
<h1 class="fadeintwo">loren ipsum</h1> 
 
<h1 class="fadeinthree">DOLOR SIT</h1> 
 
</div>

+0

請說明您遇到的確切的錯誤或問題,以便可以寫出集中的答案。 – Treffynnon

回答

1

我認爲你正在尋找animation-delay財產。這有點乏味,因爲你必須將每行的每個字母分隔成它自己的元素(在這種情況下,我使用了span),然後你必須手動分配每個span自己的延遲,但效果匹配你提供了什麼。

此外,通過使用此方法,您只需要一組關鍵幀,因爲您將使用延遲來確定動畫何時開始,而不是使用多個動畫的百分比。

div span 
 
{ 
 
    opacity: 0; 
 
    animation-name: fadein; 
 
    animation-duration: 3s; 
 
    animation-fill-mode:forwards; 
 
} 
 

 
div span:nth-child(1){animation-delay:0s} 
 
div span:nth-child(2){animation-delay:0.2s} 
 
div span:nth-child(3){animation-delay:0.4s} 
 
div span:nth-child(4){animation-delay:0.6s} 
 
div span:nth-child(5){animation-delay:0.8s} 
 
div span:nth-child(6){animation-delay:1s} 
 

 
@keyframes fadein 
 
{ 
 
    0%{opacity: 0} 
 
    100%{opacity:1} 
 
}
<div> 
 
    <span>D</span><span>E</span><span>S</span><span>I</span><span>G</span><span>N</span> 
 
</div>

當然,你可以用javascript做到這一點,該解決方案將可能是更優雅,更容易修改;然而,那麼你必須處理兼容性問題。只要有可能,堅持嚴格的CSS就會變得更好。

+0

謝謝你的解決方案是完美的! www.gfgstyle.it – Fabri