CSS-свойство transform в JavaScript
Свойство style.transform меняет отображение элемента: его можно сдвинуть, увеличить или повернуть. При этом место элемента в потоке документа не меняется.
Что меняет transform
JavaScript записывает преобразование как inline-стиль выбранного элемента. Оно меняет его вид, но не положение соседних элементов. Поэтому сдвинутая карточка может визуально наложиться на другой элемент, а место, которое она занимала до сдвига, останется в раскладке.
Сдвиг элемента
<div class="card"></div>
.card {
width: 120px;
height: 80px;
background-color: #3182ce;
}
const card = document.querySelector('.card');
card.style.transform = 'translate(20px, -8px)';
Первое значение сдвигает элемент по горизонтали, второе - по вертикали. Отрицательное значение сдвигает влево или вверх.
Масштабирование
card.style.transform = 'scale(1.1)';
Значение 1 означает исходный размер. scale(1.1) визуально увеличит элемент на 10%.
Поворот элемента
card.style.transform = 'rotate(15deg)';
rotate() принимает угол. Положительное значение поворачивает элемент по часовой стрелке, а отрицательное - против часовой.
Несколько преобразований
Несколько функций записывают в одной строке.
card.style.transform = 'translateY(-8px) scale(1.02)';
Порядок функций важен: другая последовательность может дать другой результат.
Новое значение style.transform заменяет предыдущее. Если нужны и сдвиг, и масштабирование, укажите их в одной строке.
Чтобы убрать inline-преобразование, присвойте свойству пустую строку:
card.style.transform = '';
После этого для элемента снова применится значение transform из CSS, если оно там задано.
Итого
transform подходит для визуального перемещения, масштабирования и поворота элементов. Он не меняет место элемента в раскладке, а несколько преобразований нужно указывать одним значением. Чтобы изменить расположение соседних элементов, используйте CSS-свойства, которые влияют на раскладку.