DOM - Анимация

Давайте рассмотрим, как можно создать HTML анимацию при помощи JavaScript.

Базовая веб-страница

Чтобы продемонстрировать создание HTML анимации с JavaScript, мы будем использовать следующую простенькую веб-страницу:


<!DOCTYPE html>
<html>
<body>

<h1>Моя первая JavaScript анимация</h1>

<div id="animation">Моя анимация будет происходить здесь</div>

</body>
</html>

Контейнер для анимации

Вся анимация должна происходить относительно к элементу-контейнеру.


<div id="container">
  <div id="animate">Моя анимация будет происходить здесь</div>
</div> 

Стили для элементов

Элемент-контейнер должен быть создан со стилем "position: relative".

Элемент, где будет происходить анимация, должен быть создан со стилем "position: absolute".


#container {
    width: 400px;
    height: 400px;
    position: relative;
    background: yellow;
}
#animate {
    width: 50px;
    height: 50px;
    position: absolute;
    background: red;
} 

Код анимации

Анимация JavaScript осуществляется путем программирования последовательных изменений стиля элемента.

Изменения вызываются по таймеру. Когда интервал таймера мал, анимация выглядит непрерывной.

Базовый код:


var id = setInterval(frame, 5);

function frame() {
    if (/* проверка для завершения */) {
        clearInterval(id);
    } else {
        /* код, изменяющий стиль элемента */  
    }
} 

Создание анимации при помощи JavaScript


function myMove() {
    var elem =  document.getElementById("animate"); 
    var pos = 0;
    var id = setInterval(frame, 5);
    function frame() {
        if (pos == 350) {
             clearInterval(id);
        } else {
             pos++; 
             elem.style.top = pos + 'px'; 
             elem.style.left = pos + 'px'; 
        }
     }
}