O ile rozumiem, nie ma czegoś takiego, co możemy zaimplementować za pomocą przejść css, ale nie możemy tego zaimplementować za pomocą animacji css, ale nie odwrotnie.Przypadki użycia dla przejść CSS i animacji CSS
Oznacza to, że każde przejście ma odpowiednik animacji css. Na przykład, ten
.ablock:hover {
position: relative;
-moz-transition-property: background-color, color;
-moz-transition-duration: 1s;
-webkit-transition-property: background-color, color;
-webkit-transition-duration: 1s;
color: red;
background-color:pink;
}
stanowi równowartość co następuje:
.ablock:hover {
-moz-animation-duration:1s;
-moz-animation-name:transition;
-webkit-animation-duration:1s;
-webkit-animation-name:transition;
}
@-moz-keyframes transition {
to {
color: red;
background-color: pink;
}
}
@-webkit-keyframes transition {
to {
color: red;
background-color: pink;
}
}
Moje pytanie brzmi - czy jest nam mówić o przeglądarce wspieranie zarówno przejścia CSS i animacje, jakie są przypadki użycia za wybór jednego lub inne podejście? Jeśli chodzi o przejścia, mogę wymienić tylko jeden - mają bardziej zwięzłą składnię, nie musimy kopiować wklejania ogromnych uchwytów kodu dla @ -moz-keyframes, @ -webkit-keyframes i tak dalej.
Jeśli chodzi o sterowanie z javascript, elastyczność i złożoność animacje są znacznie bardziej odpowiednie narzędzie (przynajmniej na pierwszy rzut oka). Jakie są przypadki użycia?
UPD: OK, pozwól mi spróbować wyświetlić interesujące informacje znalezione w pytaniach.
- Ten został wniesiony przez Romana Komarowa. Powiedzmy, że mamy div i div dziecka. Podczas gdy rodzic div jest ukryty, przenosimy element potomny. Gdy zabieramy mysz, przejście jest anulowane. Czas trwania tego anulowania to dokładnie czas, który już wydaliśmy na przeniesienie. Animacja jest anulowana "natychmiast". Nie wiem jednak, jak standardowe są te dwa zachowania.
W chromie te przykłady nie są równoważne - w przypadku Twojego pierwszego przykładu zmienia się na różowy po najechaniu kursorem, a następnie pozostaje (dopóki nie wyłączysz myszy), podczas gdy w drugim zmienia kolor na różowy, a następnie przełącza z powrotem domyślnie po zakończeniu: http://jsfiddle.net/nKw3X/1/. Ponadto, jak łatwo jest wykonywać funkcje czasowe przejścia, takie jak "łatwość wchodzenia", w animacjach? http://www.the-art-of-web.com/css/timing-function/ –
Próbowałem dowiedzieć się, jak przywrócić kolor do poprzedniego stanu po zdjęciu myszy z elementu, ale nie mogłem uzyskać to działa: http://jsfiddle.net/nKw3X/2/. Może to nie jest możliwe? To byłaby duża różnica - wraz z niemożnością utrzymania przenoszonej wartości. –