2017-03-09 76 views
1

我有翻譯本身在一個簡單的過渡一個div:對於不同的過渡開/關類,但相同的屬性

div{ 
    transform: translate3d(0, -100%, 0); 
    transition: all .5s; 
} 

div.active{ 
    transform: translate3d(0, 0, 0); 
} 

然後,我與切換JS類和它完美的作品。這將執行以下操作:

On --> Slide div down 
Off --> Slide div up 

我想要做的是:

On --> Slide div down 
Off --> Slide div down again 

有沒有辦法來實現這一目標?

編輯:下面是什麼它做了演示:https://jsfiddle.net/bwzy89oq/(點擊任何地方)

+0

您能否提供演示? – sol

+0

是的,請等一下請 – nick

+0

@ovokuro加入! – nick

回答

1

這確實你需要什麼,排序的,但它開始播放動畫。我正在研究如何邏輯:

div { 
    width: 100%; 
    height: 100%; 
    position: fixed; 
    top: 0; 
    left: 0; 
    transform: translate3d(0, 100%, 0); 
    background: black; 
    transition: all .5s ease-in-out; 
    animation: slider2 .5s forwards; 
} 

div.active { 
    animation: slider .5s forwards; 
    /*transform: translate3d(0, 0, 0);*/ 
} 

@keyframes slider { 
    from { 
    transform: translate3d(0, -100%, 0); 
    } 
    to { 
    transform: translate3d(0, 0, 0); 
    } 
} 


@keyframes slider2 { 
    from { 
    transform: translate3d(0, 0, 0); 
    } 
    to { 
    transform: translate3d(0, 100%, 0); 
    } 
} 
+0

這正是我正在尋找的,如果你設法避免第一次發射動畫,這將是驚人的! – nick

+0

嘿!把它看作是JS的一小部分,只需將div上的不透明度設置爲0,並在第一次單擊時將它設置回1:D – nick

+0

很酷。是的,使用JS是一個簡單的解決方案。我一直在尋找一種純粹的CSS方法,但事實證明它很棘手。 –

相關問題