2017-02-08 64 views
1

我一直在試圖弄清楚這一段時間,但目前爲止還沒有成功:我想使用CSS運行一個打字動畫。動畫必須在7秒後開始。我無法弄清楚如何做到這一點。我的代碼如下所示:CSS動畫在一段時間後開始

HTML

<div class='background-fullwidth'>  
    <div class="css-typing"> 
     This text will pop up using an typewriting effect 
    </div>   
</div> 

CSS

.css-typing { 
    width: 360px; 

    white-space: nowrap; 
    overflow: hidden; 
    -webkit-animation: type 3s steps(50, end); 
    animation: type 3s steps(55, end); 
    -o-animation: type 5s steps(50, end); 
    -moz-animation: type 3s steps(55, end); 

    padding: 10px; 
} 

.background-fullwidth { 
    width: 400px; 
    background-color: rgba(0, 50, 92, 0.7); 
}  

@keyframes type { 
    from { width: 0; } 
    to { width: 360px; } 
} 

@-moz-keyframes type { 
    from { width: 0; } 
    to { width: 360px; } 
} 

@-webkit-keyframes type { 
    from { width: 0; } 
    to { width: 360px; } 
} 

有誰知道如何添加此計時器 - 讓我們說的動畫有7秒鐘後開始?從第二個到第七個只需要顯示包裹的DIV(藍色背景)。

小提琴看起來是這樣的: CSS Animation

回答

3

你必須使用3種不同的動畫屬性。

  1. 動畫延遲:它可以幫助你實現該解決方案爲7秒之後開始動畫的基本問題。
  2. animation-iteration-count;該屬性讓您決定動畫重複的次數。將其設置爲1會將其限制爲單個動畫實例。
  3. animation-fill-mode:將此屬性設置爲forward將確保寬度在動畫結束時保持爲320。

CSS

animation-delay: 2s; 
    animation-iteration-count: 1; 
    animation-fill-mode: forwards; 
    width: 0; // So that the animation starts from 0 

審查在https://jsfiddle.net/kaminasw/at6mbxyr/

+0

這似乎工作,除了火狐 –

+0

有沒有辦法解決這個問題的Firefox? –

+1

@ -moz關鍵幀在Firefox中缺少屬性。 –

0

您需要使用animation-delay對於這樣的:

.css-typing { 
    --other properties-- 
    -webkit-animation-delay: 7s; /* Safari 4.0 - 8.0 */ 
    animation-delay: 7s; 
} 
+0

有趣的是這種方法仍然會顯示來自第二1-7文本和復位的重寫之後開始。我不想要任何顯示,直到動畫開始 - 除了包裝 –