Запускаем трансформации CSS3 из JavaScript

Обычно трансформации CSS3 запускаются с помощью средств CSS, таких как псевдо-классы :hover или :checked. Такое положение соответствует изменению состояния элемента, для которого определены трансформации. Однако, трансформации CSS можно запускать и из JavaScript кода.

Вот простой пример.

Имеем структуру разметки:
<div class="box"></div>
<input type="button" value="Нажми меня" id="bt">

Теперь воспользуемся jQuery, чтобы при нажатии кнопки для элемента div менялся класс:
$(function() {
    $("#bt").click(function() {
        $(".box").toggleClass("box-change");
    });
});

А сами классы CSS определяем следующим образом:
.box {
    width: 300px;
    height: 300px;
    -webkit-transition: width 2s ease, height 2s ease;
    -moz-transition: width 2s ease, height 2s ease;
    -o-transition: width 2s ease, height 2s ease;
    -ms-transition: width 2s ease, height 2s ease;
    transition: width 2s ease, height 2s ease;
}
 
.box-change {
    width: 400px;
    height: 400px;
}

Трансформации объявлены для класса .box (используются все префиксы). В нашем примере происходит изменение высоты и ширины прямоугольника.

Когда пользователь нажимает на кнопку добавляется или удаляется класс .box-change, что запускает трансформацию. Все просто.

И зачем это нужно?
Во-первых, если вы используете JavaScript в своем приложении, то для простых анимаций можно использовать данный метод. Определяем трансформации в CSS, когда нужно, запускаем их. А суматоха с использованием jQuery остается для более интересных процессов. Конечно, многие предпочитают делать анимации в JavaScript. Но простые действия вполне могут размещаться в коде CSS и не занимать место и время на реализацию.

Во-вторых, можно использовать Modernizr для определения возможностей браузера и корректировать действия для обеспечения кросс-браузерности:
$(function() {
 
    $("#bt").click(function() {
        if (Modernizr.csstransitions) {
            $(".box").toggleClass("box-change");
        } else {
            // Делаем анимации на основе jQuery для IE 6-9
        }
    });
});

Теги:
трансформации
Добавлено: 09 Мая 2018 14:59:05 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...