2017-10-07 84 views
0

我有一個元素可以從屏幕上滑過,然後在相反的一側滑動並「降落」。我已經下了動畫,但似乎在延遲期間,圖像只是在等待的頁面上。延遲是因爲我有另一個動畫需要在這個動畫開始之前完成。使元素在CSS中的動畫延遲過程中保持隱藏狀態

這裏是我的CSS代碼,我有一個反應前端

.tester{ 
    position: relative; 
    animation-name: test_css_moving_sideways; 
    animation-duration: 3s; 
    animation-iteration-count: 1; 
    animation-direction: linear; 
    left: 90%; 
    animation-delay: 2s; 
} 


@keyframes test_css_moving_sideways { 
    0% { left: 0px; top: 0px;} 
    100% { left: 90%; top: 0px; } 
} 
+1

*「從屏幕上滑過我想看起來像脫離頁面」* - 那麼爲什麼你不啓動它*實際*關閉頁面?如在中,將「左」座標設置爲負值。然後它將被隱藏,直到動畫將其帶過頁面的左邊緣。 – nnnnnn

回答

2

1)爲了解決這個問題通過類引用它,這樣它坐落在0%你可以在CSS設置left屬性,以便再當你的動畫開始時,它不必移動到0%(動畫開始的地方)的左邊,因爲它已經在那裏:)

2)添加animation-fill-mode - 這控制着動畫結束時會發生什麼。這個值設置爲forwards將從動畫結束的CSS應用於對象

所以修改你的CSS:

.tester{ 
    position: relative; 
    animation-name: test_css_moving_sideways; 
    animation-duration: 3s; 
    animation-iteration-count: 1; 
    animation-direction: linear; 
    left: 0%; 
    animation-delay: 2s; 
    animation-fill-mode: none, forwards; 
} 
+0

是的,但是當動畫結束時,它會回到屏幕的左側,因爲這就是css在'left:0%'所告訴它的內容,'所以我如何讓它從左側隱藏起來,或者在屏幕外,動畫到右邊,然後保持在右邊 – KellysOnTop23

+1

@ KellysOnTop23啊對不起,我誤解了:)你需要做的是設置動畫填充模式:轉發;這將保持動畫結束的對象:)用新的代碼行修改了我的原始答案 - 現在就試試 – Jesus

+0

animation-fill-mode做到了!謝謝@Ryan Earnshaw – KellysOnTop23

0

檢查codepen:https://codepen.io/sasssssha/pen/Nayzpg

您應該創建一個多個類( .testerAnimated),並將該類名添加到帶有js函數的元素(如果您想在特定時間內使用動畫),或者您可以一次添加它(在這種情況下,動畫會在頁面加載時啓動)。檢查它:

.testerAnimated{ 
    animation-name: test_css_moving_sideways; 
    animation-duration: 4.5s;   //play with it 
    animation-delay: 2s; 
    }  

    .tester{ 
    position: relative; 
    animation-name: test_css_moving_sideways; 
    left: 90%; 
    visibility:hidden; 
} 


@keyframes test_css_moving_sideways { 
    0% { left: 0px; top: 0px;visibility:visible;} 
    100% { left: 90%; top: 0px;visibility:visible;} 
} 
+0

我對此項目有所反應,我知道jQery很簡單,但是如何反應? – KellysOnTop23

+1

加上這段代碼不會保留在動畫發送到那裏後的右側 – KellysOnTop23

+0

@ KellysOnTop23你在哪看到我的代碼中使用JQuery ?????? – user8685433