На мой взгляд, jQuery animate
немного перегружен по сравнению с CSS3 transition
, который выполняет такую анимацию для любого 2D или 3D свойства. Также я боюсь, что если оставить его браузеру и , забыв о слое под названием JavaScript, это может привести к экономии процессорного сока - особенно, если вы хотите использовать анимацию. Таким образом, мне нравится иметь анимацию, где определения стилей, так как вы определяете функциональность с помощью JavaScript . Чем больше презентаций вы внедрите в JavaScript, тем больше проблем вы столкнетесь позже.
Все, что вам нужно сделать, это использовать addClass
для элемента, который вы хотите анимировать, где вы устанавливаете класс, который имеет свойства CSS transition
. Вы просто «активируете» анимацию , которая остается реализованной на чистом уровне представления .
.js
// with jQuery
$("#element").addClass("Animate");
// without jQuery library
document.getElementById("element").className += "Animate";
Можно просто удалить класс с помощью jQuery или удалить класс без библиотеки .
.css
#element{
color : white;
}
#element.Animate{
transition : .4s linear;
color : red;
/**
* Not that ugly as the JavaScript approach.
* Easy to maintain, the most portable solution.
*/
-webkit-transform : rotate(90deg);
}
.html
<span id="element">
Text
</span>
Это быстрое и удобное решение для большинства случаев использования.
Я также использую это, когда хочу реализовать другой стиль (альтернативные свойства CSS) и хочу изменить стиль на лету с помощью глобальной анимации .5s. Я добавляю новый класс в BODY
, имея альтернативный CSS в такой форме:
.js
$("BODY").addClass("Alternative");
.css
BODY.Alternative #element{
color : blue;
transition : .5s linear;
}
Таким образом, вы можете применять разные стили к анимации, не загружая разные CSS-файлы. Вы используете только JavaScript для установки class
.