Если вы проверите элементы с помощью F12 и go на вкладке «Вычисленные», вы увидите, что они имеют свойства CSS transition
:
CSS свойства перехода просто говорит браузеру анимировать свойство CSS из текущего значения в новое значение. Это действительно простой и эффективный способ создания анимации. Я настоятельно рекомендую их.
Вот фрагмент с демонстрацией, которую я только что сделал:
setTimeout(function() {
document.querySelector(".yay").classList.add("anim");
}, 1000);
.yay {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
top: 0;
left: 0;
transition: background-color 500ms, top 500ms, left 500ms;
}
.anim {
top: 100px;
left: 100px;
background-color: blue;
}
<div class="yay" />
Вам просто нужно изменить его переходные свойства CSS с помощью JavaScript, изменив его класс (как это демо) или изменив объект Свойства стиля напрямую. Браузер сделает все остальное. Довольно круто на самом деле. Вы даже можете изменить свойства с помощью псевдоселекторов, таких как ::hover
, ::active
и др. c, и они также будут анимироваться. Принимается ноль JavaScript!
Они должны анимировать эти свойства с помощью CSS, и они просто устанавливают целевые позиции / размеры / независимо от того, что каждые X секунд.
Добавление : Легко, что все анимации создаются с помощью внешнего инструмента, который преобразует все в CSS переходы, но потому что рынок заполнен десятками инструментов, и они не устанавливают подписи при экспорте в HTML5 , невозможно узнать, сделали ли они это вручную для каждого элемента или нет. Кстати, не так сложно создать пример, который вы показали вручную. Если вы привыкли к HTML5, в итоге вы теряете то же время, когда делаете это с помощью внешнего инструмента. «Пакеты JS» содержат пакеты, которые используют переходы CSS, и другие, которые имеют собственную временную шкалу. GreenSock не использует CSS переходы, поэтому определенно не GreenSock.
В частности, в случае Stripe они используют «Animate Plus», как вы можете видеть здесь: https://b.stripecdn.com/site-srv/assets/compiled/js/sprockets-js-v3/external/animateplus-compat-2.0.1.js-490ccee558f4d2e2d207.min.js