JS властивість CSSStyleDeclaration.transformOrigin


Загальний опис

element.style.transformOrigin - це властивість, яка визначає точку, навколо якої застосовуються трансформації елемента. Вона дозволяє змінювати центр обертання, масштабування або іншої трансформації, що робить анімації та ефекти більш контрольованими та гнучкими.

Для роботи з властивістю element.style.transformOrigin вам потрібно спочатку вибрати елемент у DOM. Це можна зробити за допомогою методів, таких як document.getElementById або document.querySelector.

Приклад:

let element = document.getElementById('myElement');
element.style.transformOrigin = 'top left';
element.style.transform = 'rotate(45deg)';

У цьому прикладі елемент з ідентифікатором myElement обертається на 45 градусів навколо точки, яка знаходиться у верхньому лівому куті елемента. За замовчуванням, точка трансформації знаходиться в центрі елемента (50% 50%), але її можна змінити на будь-яку іншу позицію, використовуючи одиниці вимірювання, такі як відсотки (%), пікселі (px) або ключові слова (top, bottom, left, right, center).

Наступний приклад показує, як змінити точку трансформації для масштабування елемента:

let element = document.getElementById('myElement');
element.style.transformOrigin = 'bottom right';
element.style.transform = 'scale(1.5)';

Тут елемент масштабується в 1.5 рази навколо точки, що знаходиться у нижньому правому куті. Це корисно, коли вам потрібно, щоб елемент збільшувався або зменшувався від певної точки, а не від центру.

Крім ключових слів і відсотків, ви також можете використовувати пікселі для більш точної настройки точки трансформації:

let element = document.getElementById('myElement');
element.style.transformOrigin = '30px 40px';
element.style.transform = 'rotate(30deg)';

У цьому прикладі обертання відбувається навколо точки, що знаходиться на 30 пікселів праворуч і 40 пікселів вниз від верхнього лівого кута елемента. Це дає вам точний контроль над місцем, де повинні відбуватися трансформації.

Використання transformOrigin також важливе при створенні складних анімацій. Наприклад, якщо ви створюєте анімацію обертання руки на зображенні персонажа, ви можете встановити точку трансформації на плечі, щоб обертання виглядало природно:

let arm = document.getElementById('arm');
arm.style.transformOrigin = 'top left';
arm.style.transform = 'rotate(90deg)';

Важливо враховувати, що transformOrigin впливає на всі типи трансформацій, включаючи rotate, scale, skew та translate, тому використання цієї властивості допомагає досягти бажаних ефектів з високою точністю.

Таким чином, element.style.transformOrigin є потужним інструментом для налаштування та контролю точок застосування трансформацій, що дозволяє створювати складні та реалістичні анімації та ефекти на веб-сторінках.

автор: Bond

Порада

Використовуйте transformOrigin для створення реалістичних анімацій персонажів. Наприклад, якщо ви анімуєте руку персонажа, встановіть transformOrigin на плечі, щоб обертання виглядало природно. Це дозволить вам створити більш правдоподібні анімації, які виглядатимуть краще і природніше.

автор: Bond
Порада

Поєднуйте transformOrigin з іншими CSS-властивостями для створення плавних анімацій. Використовуйте transition разом з transform і transformOrigin, щоб зробити зміни плавними та природними. Це допоможе вам покращити користувацький досвід, роблячи анімації більш привабливими.

автор: Bond
Порада

Налаштування transformOrigin може допомогти вам створити анімації масштабування з певної точки. Замість того щоб масштабувати елемент з його центру, ви можете змінити точку масштабування, щоб створити цікаві візуальні ефекти. Наприклад, ви можете збільшити елемент від нижнього правого кута, встановивши transformOrigin на 'bottom right'.

автор: Bond

Синтаксис

element.style.transformOrigin

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 3 8 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад показує, як створити анімацію руху руки при наведенні курсора. Встановлюючи transformOrigin на 'top right', ми задаємо точку обертання на плечі руки. При наведенні курсора рука нахиляється на 20 градусів, а при відведенні повертається в початкове положення, що створює ефект природного руху.

HTML

<div id="hand">Демонстраційний елемент</div>

JS

let hand = document.getElementById('hand');
hand.style.transformOrigin = 'top right';
hand.style.transition = 'transform 0.5s';
hand.addEventListener('mouseover', () => {
    hand.style.transform = 'rotate(20deg)';
});
hand.addEventListener('mouseout', () => {
    hand.style.transform = 'rotate(0deg)';
});
автор: Bond

Цей приклад демонструє, як створити ефект відкриття дверей. Встановлюючи transformOrigin на 'left center', ми визначаємо точку обертання вздовж лівого краю дверей. При натисканні на елемент, він обертається на 90 градусів по осі Y, створюючи ефект відкриття.

HTML

<div id="door">Демонстраційний елемент</div>

JS

let element = document.getElementById('door');
element.style.transformOrigin = 'left center';
element.style.transition = 'transform 1s';
element.addEventListener('click', () => {
    element.style.transform = 'rotateY(90deg)';
});
автор: Bond

Цей приклад надає користувачу можливість обертати квадратний елемент навколо різних точок: центру, верхнього лівого кута та нижнього правого кута. Кожна кнопка встановлює відповідну точку обертання за допомогою transformOrigin та обертає елемент на 360 градусів, дозволяючи спостерігати різницю в поведінці обертання.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід