2015-12-12 240 views
1

我正在使用以下代碼淡出圖像。當動畫結束時,淡出的CSS動畫不會淡出

.fadeOut { 
    -webkit-animation: fadeout 1s; /* Safari, Chrome and Opera > 12.1 */ 
    -moz-animation: fadeout 1s; /* Firefox < 16 */ 
    -ms-animation: fadeout 1s; /* Internet Explorer */ 
    -o-animation: fadeout 1s; /* Opera < 12.1 */ 
    animation: fadeout 1s; 
} 

@keyframes fadeout { 
    from { 
     opacity: .9; 
    } 

    to { 
     opacity: 0; 
    } 
} 

而在我的HTML頁面,我有

<img src="~/Content/Images/myImage.png" class="fadeOut" /> 

淡出作品(最初),但圖像已經淡出後,用完全不透明返回。

我怎樣才能保持不透明度爲0?

回答

3

您需要將animation-fill-mode屬性更改爲forwards

.fadeOut { 
    animation: fadeout 1s forwards; 
} 

MDN animation-fill-mode property

forwards值將迫使目標保留在執行過程中遇到的最後一個關鍵幀設置的計算值。遇到的最後一個關鍵幀取決於animation-direction和animation-iteration-count的值。

默認情況下,value是沒有的,這意味着之前或正在執行動畫後不會施加任何樣式的目標。

+0

你知道爲什麼這不是必需的,那麼當我做淡入淡出(代碼幾乎相同,淡出,只是顛倒了數字) – MyDaftQuestions

+1

@MyDaftQuestions因爲當你淡入的元素,最後一個關鍵幀大概是'不透明度:1',它已經是動畫之前*元素的默認'不透明度'。相反,另一方面,淡出元素將以低於「1」的不透明度結束。 –

+0

令人驚歎的答案! – MyDaftQuestions