rotate()

rotate() в CSS - это функция свойства transform, которая позволяет вращать элементы в 2D плоскости на указанный угол.


Синтаксис

  
  transform: rotate(45deg);
  

Сразу же посмотрим, какой может быть результат анимации.

Задавая положительное число в скобках в rotate(), мы тем самым поворачиваем элемент по часовой стрелке, если отрицательное, тогда против часовой.

  
  transform: rotate(-45deg);
  

Единицы измерения

Для того, чтобы задать угол вращения в rotate() можно использовать следующие единицы измерения.

Центр вращения

По умолчанию rotate() вращает элемент вокруг его центра, но точку вращения можно изменить, воспользовавшись свойством transform-origin.

В данном примере точка устанавливается в верхнем левом углу:

  
  transform-origin: left top;
  

Здесь в нижнем правом:

  
  transform-origin: bottom right;
  

Также существуют и другие значения свойства transform-origin, которые дают возможность задать различные точки вращения.

Оси вращения

rotate() вращает элемент вокруг оси Z, однако для реализаций 3D-анимаций есть функции позволяющие вращать объекты по оси X и Y.

  
  transform: rotateX(90deg);
  
  
  transform: rotateY(90deg);
  

Также есть функция rotateZ(), которая эквивалента rotate() и чаще используется в 3D анимации, для лучшей читаемости кода, так как явно указывает на ось вращения.

Сочетание rotate() c другими функциями

Для создания более сложных визуальных эффектов можно сочетать rotate() в одной строке с другими функциями преобразования, такими как translate(), scale() и skew().

  
  transform: rotate(90deg) skew(30deg) scale(1.5) translate(10px, 5px);
  

При работе с несколькими трансформациями стоит учитывать порядок, в котором они применяются. Разные последовательности могут давать разные визуальные эффекты.