Próbuję zaimplementować efekt „zanikania” w czystym CSS. Oto skrzypce . Sprawdziłem kilka rozwiązań online, jednak po przeczytaniu dokumentacji online próbuję dowiedzieć się, dlaczego animacja slajdów nie działa. Jakieś wskazówki?
.dummy-wrap {
animation: slideup 2s;
-moz-animation: slideup 2s;
-webkit-animation: slideup 2s;
-o-animation: slideup 2s;
}
.success-wrap {
width: 75px;
min-height: 20px;
clear: both;
margin-top: 10px;
}
.successfully-saved {
color: #FFFFFF;
font-size: 20px;
padding: 15px 40px;
margin-bottom: 20px;
text-align: center;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background-color: #00b953;
}
@keyframes slideup {
0% {top: 0px;}
75% {top: 0px;}
100% {top: -20px;}
}
@-moz-keyframes slideup {
0% {top: 0px;}
75% {top: 0px;}
100% {top: -20px;}
}
@-webkit-keyframes slideup {
0% {top: 0px;}
75% {top: 0px;}
100% {top: -20px;}
}
@-o-keyframes slideup {
0% {top: 0px;}
75% {top: 0px;}
100% {top: -20px;}
}
<div class="dummy-wrap">
<div class="success-wrap successfully-saved">Saved</div>
</div>
css
css-transitions
Penny Liu
źródło
źródło
Oto inny sposób, aby zrobić to samo.
efekt zanikania
.visible { visibility: visible; opacity: 1; transition: opacity 2s linear; }
efekt fadeOut
.hidden { visibility: hidden; opacity: 0; transition: visibility 0s 2s, opacity 2s linear; }
UPDATE 1:
Znalazłem bardziej aktualny tutorial CSS3 Transition: fadeIn i fadeOut jak efekty do ukrycia elementów pokazu i podpowiedzi Przykład: Pokaż Ukryj wskazówkę lub tekst pomocy przy użyciu przejścia CSS3 tutaj z przykładowym kodem.UPDATE 2:
(Dodano szczegóły wymagane przez @ big-money)Podczas wyświetlania elementu (przełączając się na widoczną klasę), chcemy,
visibility:visible
aby natychmiast włączył się, więc można zmienić tylko właściwość opacity. A ukrywając element (przełączając się na klasę ukrytą), chcemy opóźnićvisibility:hidden
deklarację, abyśmy mogli najpierw zobaczyć przejście z zanikania. Robimy to, deklarując przejście we właściwości visibility z czasem trwania równym 0 s i opóźnieniem. Możesz zobaczyć szczegółowy artykuł tutaj .Wiem, że jestem za późno, aby odpowiedzieć, ale zamieszczam tę odpowiedź, aby zaoszczędzić innym czas. Mam nadzieję, że ci to pomoże!
źródło
display:none
aby wymazać pole po zakończeniu animacji „ukrywania”, jakiś pomysł?display:block
zamiastvisibility: visible
w.visible
klasie, podobniedisplay:none
zamiastvisibility: hidden
w.hidden
klasie z powyższego przykładu.display
nie jest jedną z animowanych właściwości CSS . Zobacz Animowanie od „display: block” do „display: none” .Ponieważ
display
nie jest jedną z animowanych właściwości CSS. Jednadisplay:none
animacja zastępująca fadeOut czystymi animacjami CSS3, po prostu ustawwidth:0
iheight:0
na ostatniej klatce i użyjanimation-fill-mode: forwards
do zachowaniawidth:0
iheight:0
właściwości.@-webkit-keyframes fadeOut { 0% { opacity: 1;} 99% { opacity: 0.01;width: 100%; height: 100%;} 100% { opacity: 0;width: 0; height: 0;} } @keyframes fadeOut { 0% { opacity: 1;} 99% { opacity: 0.01;width: 100%; height: 100%;} 100% { opacity: 0;width: 0; height: 0;} } .display-none.on{ display: block; -webkit-animation: fadeOut 1s; animation: fadeOut 1s; animation-fill-mode: forwards; }
źródło
width
iheight
obie są wrażliwe.To jest działający kod dla twojego pytania.
Ciesz się kodowaniem ....
<html> <head> <style> .animated { background-color: green; background-position: left top; padding-top:95px; margin-bottom:60px; -webkit-animation-duration: 10s;animation-duration: 10s; -webkit-animation-fill-mode: both;animation-fill-mode: both; } @-webkit-keyframes fadeOut { 0% {opacity: 1;} 100% {opacity: 0;} } @keyframes fadeOut { 0% {opacity: 1;} 100% {opacity: 0;} } .fadeOut { -webkit-animation-name: fadeOut; animation-name: fadeOut; } </style> </head> <body> <div id="animated-example" class="animated fadeOut"></div> </body> </html>
źródło
Zapomniałeś dodać właściwość position do
.dummy-wrap
klasy, a wartości góra / lewo / dół / prawo nie mają zastosowania do elementów pozycjonowanych statycznie (ustawienie domyślne)http://jsfiddle.net/dYBD2/2/
źródło
top
wartość, aby przesunęła się „poza” rzutnię, lub możesz użyć krycia dla animacji, aby.fadeOut{ background-color: rgba(255, 0, 0, 0.83); border-radius: 8px; box-shadow: silver 3px 3px 5px 0px; border: 2px dashed yellow; padding: 3px; } .fadeOut.end{ transition: all 1s ease-in-out; background-color: rgba(255, 0, 0, 0.0); box-shadow: none; border: 0px dashed yellow; border-radius: 0px; }
demo tutaj.
źródło