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


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

element.style.perspective – це властивість CSS, яка встановлює глибину перспективи для елемента, що створює ефект тривимірності. Значення цієї властивості визначає, наскільки далеко від користувача знаходиться площина перспективи, що впливає на видимий масштаб і глибину 3D-об'єктів, які є дітьми цього елемента.

Щоб використовувати element.style.perspective в JavaScript, необхідно спочатку вибрати HTML-елемент, до якого ви хочете застосувати цю властивість. Найчастіше це робиться за допомогою методів document.querySelector або document.getElementById.

// Вибір елемента за ID
let element = document.getElementById('container');

// Встановлення перспективи
element.style.perspective = '500px';

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

Значення властивості

element.style.perspective приймає значення, яке може бути задано в будь-якій одиниці довжини, такій як пікселі (px) або відсотки (%). Наприклад, 500px або 50%. Значення none означає, що перспектива не застосовується, і 3D-трансформації не матимуть перспективного ефекту.

Використання властивості з іншими CSS-трансформаціями

Перспектива працює разом з іншими CSS-трансформаціями, такими як rotateY, rotateX, translateZ, та іншими. Це дозволяє створювати складні тривимірні ефекти.

let element = document.getElementById('container');
element.style.perspective = '1000px';

let innerElement = document.getElementById('innerElement');
innerElement.style.transform = 'rotateY(45deg)';

У цьому прикладі перспектива встановлена на 1000 пікселів для контейнера, а внутрішній елемент обертається на 45 градусів по осі Y. Це створює враження тривимірного обертання внутрішнього елемента в просторі.

Анімація перспективи

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

let element = document.getElementById('container');
element.style.transition = 'perspective 1s';
element.style.perspective = '800px';

element.addEventListener('mouseenter', () => {
    element.style.perspective = '400px';
});

element.addEventListener('mouseleave', () => {
    element.style.perspective = '800px';
});

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

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

автор: Bond

Порада

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

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

Пам’ятайте, що перспектива працює найкраще, коли дочірні елементи мають свої власні тривимірні трансформації. Використовуйте властивості, такі як rotateY, rotateX, translateZ, щоб створити реалістичний 3D-ефект. Це дозволяє вашим елементам взаємодіяти один з одним у тривимірному просторі, підсилюючи відчуття глибини і реальності.

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

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

автор: Bond

Синтаксис

element.style.perspective

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач 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
- -

Приклади

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

У цьому прикладі створюється тривимірна карусель зображень. Властивість perspective встановлює глибину перспективи, створюючи ефект тривимірного обертання для елементів всередині контейнера. Анімація, яка обертає карусель кожні 2 секунди, додає динамічності та візуальної привабливості, що може бути корисно для галерей або слайд-шоу на веб-сторінках.

HTML

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

JS

// Динамічне створення 3D-каруселі зображень
let carousel = document.getElementById('carousel');
carousel.style.perspective = '800px';

let images = ['img1.jpg', 'img2.jpg', 'img3.jpg', 'img4.jpg'];
images.forEach((src, index) => {
    let img = document.createElement('img');
    img.src = src;
    img.style.position = 'absolute';
    img.style.transform = `rotateY(${index * 90}deg) translateZ(300px)`;
    carousel.appendChild(img);
});

// Анімація каруселі
let angle = 0;
setInterval(() => {
    angle += 90;
    carousel.style.transform = `rotateY(${angle}deg)`;
}, 2000);
автор: Bond

Цей приклад створює тривимірний куб з текстових елементів, де кожна сторона куба представлена окремим div. Властивість perspective встановлює глибину перспективи, а обертання куба здійснюється за допомогою подій клавіатури. Це корисно для демонстрацій, інтерактивних навчальних матеріалів або просто для створення цікавих візуальних ефектів на веб-сторінках.

HTML

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

JS

// Створення 3D-куба з текстових елементів
let cube = document.getElementById('cube');
cube.style.perspective = '600px';

let faces = ['front', 'back', 'left', 'right', 'top', 'bottom'];
faces.forEach(face => {
    let div = document.createElement('div');
    div.className = face;
    div.textContent = face;
    div.style.position = 'absolute';
    switch (face) {
        case 'front':
            div.style.transform = 'rotateY(0deg) translateZ(100px)';
            break;
        case 'back':
            div.style.transform = 'rotateY(180deg) translateZ(100px)';
            break;
        case 'left':
            div.style.transform = 'rotateY(-90deg) translateZ(100px)';
            break;
        case 'right':
            div.style.transform = 'rotateY(90deg) translateZ(100px)';
            break;
        case 'top':
            div.style.transform = 'rotateX(90deg) translateZ(100px)';
            break;
        case 'bottom':
            div.style.transform = 'rotateX(-90deg) translateZ(100px)';
            break;
    }
    cube.appendChild(div);
});

// Обертання куба
let rotateX = 0;
let rotateY = 0;
document.addEventListener('keydown', event => {
    if (event.key === 'ArrowUp') rotateX -= 10;
    if (event.key === 'ArrowDown') rotateX += 10;
    if (event.key === 'ArrowLeft') rotateY -= 10;
    if (event.key === 'ArrowRight') rotateY += 10;
    cube.style.transform = `rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
});
автор: Bond

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

автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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