document.fullscreenElement — елемент на весь екран у JS
Загальний опис
fullscreenElement — це властивість об'єкта document, яка показує, який елемент наразі знаходиться у повноекранному режимі. Якщо на сторінці є елемент, який відображається у повноекранному режимі, ця властивість поверне посилання на нього. Якщо жоден елемент не перебуває у повноекранному режимі, fullscreenElement повертає null. Ця властивість надзвичайно корисна для перевірки статусу повноекранного режиму перед виконанням дій, що залежать від його активності.
Для роботи з fullscreenElement часто використовуються такі методи, як requestFullscreen() та exitFullscreen(). Наприклад, якщо ви хочете автоматично вийти з повноекранного режиму після певної події, ви можете перевірити, чи елемент знаходиться в повноекранному режимі, звертаючись до fullscreenElement. Це дозволяє уникнути непотрібних викликів exitFullscreen(), коли сторінка вже знаходиться у звичайному режимі.
Приклад коду для перевірки активного повноекранного елемента:
if (document.fullscreenElement) {
console.log("Елемент у повноекранному режимі:", document.fullscreenElement);
} else {
console.log("Жоден елемент не знаходиться у повноекранному режимі.");
}
Крім того, зручно використовувати цю властивість разом з подією fullscreenchange, яка спрацьовує при вході або виході з повноекранного режиму. В рамках цієї події можна відстежувати зміни статусу fullscreenElement, що дозволяє адаптувати поведінку програми в залежності від того, чи знаходиться елемент у повноекранному режимі. Оскільки підтримка повноекранного режиму може відрізнятися в різних браузерах, перевірка fullscreenElement допомагає забезпечити стабільну роботу.
Таким чином, fullscreenElement є важливим інструментом для керування інтерфейсом, що використовує повноекранний режим, і дозволяє розробникам створювати більш інтерактивний та динамічний користувацький досвід.
- Порада
-
Комбінуйте
автор: BondfullscreenElementз подієюfullscreenchangeдля автоматичного оновлення інтерфейсу. Це корисно, щоб адаптувати інтерфейс відповідно до змін у повноекранному режимі та зробити перехід більш плавним. - Порада
-
Для виявлення помилок перевірте, чи
автор: BondfullscreenElementповертаєnull. Це означає, що повноекранний режим недоступний, і можна або повторити запит наrequestFullscreen(), або обробити ситуацію інакше. - Порада
-
Якщо використовуєте
автор: BondfullscreenElementдля перевірки статусу на мобільних пристроях, пам'ятайте, що підтримка повноекранного режиму може бути обмежена, тому слід перевіряти і сумісність.
Синтаксис
document.fullscreenElement;
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 71 | 64 | 16.4 | 58 | 79 | 11* |
| Переглядач | ||||
|---|---|---|---|---|
| 71 | 71 | 64 | 16.4* |
Приклади
+ запропонувати свій приклад у пісочниці
Цей приклад автоматично виходить з повноекранного режиму, якщо активний елемент змінюється. Це корисно для додатків, де лише певні елементи повинні підтримувати повноекранний режим, і забезпечує плавний перехід між елементами.
HTML
<div id="gallery">
<img src="/img/logo.svg" width="100" alt="1">
<img src="/img/logo.svg" width="100" alt="2">
</div>
<button id="fs">Галерею на весь екран</button>
JS
document.addEventListener('fullscreenchange', () => {
if (document.fullscreenElement && document.fullscreenElement.id === 'gallery') {
console.log('Повноекранний режим активовано для галереї.');
} else if (!document.fullscreenElement) {
console.log('Вийшли з повноекранного режиму.');
}
});
document.getElementById('fs').addEventListener('click', () => {
document.getElementById('gallery').requestFullscreen()
.catch(error => console.log('Не дозволено:', error.message));
});
У цьому прикладі повноекранний режим автоматично налаштовує інтерфейс залежно від активного елемента. Коли елемент знаходиться в повноекранному режимі, його фон змінюється на чорний, що покращує сприйняття відео або інших медіа.
HTML
<img id="videoPlayer" src="/img/logo.svg" width="120" alt="Демо">
<button id="fs">На весь екран</button>
JS
document.addEventListener('fullscreenchange', () => {
if (document.fullscreenElement) {
console.log('У повноекранному режимі:', document.fullscreenElement.tagName);
} else {
console.log('Повноекранний режим вимкнено.');
}
});
document.getElementById('fs').addEventListener('click', () => {
// потрібен жест користувача, інакше запит відхиляється
document.getElementById('videoPlayer').requestFullscreen()
.catch(error => console.log('Не дозволено:', error.message));
});
HTML
<header>
<h2 class="title">fullscreenElement</h2>
<p class="description">Показує, який елемент зараз у повноекранному режимі або повертає null.</p>
</header>
<main>
<div class="result">
<!-- Кнопки для активації повноекранного режиму -->
<button id="toggleImageFullscreen">Повноекранний режим для зображення</button>
<button id="toggleTextFullscreen">Повноекранний режим для тексту</button>
<p id="fullscreenStatus">Жоден елемент не перебуває у повноекранному режимі.</p>
<!-- Елементи, які можна зробити повноекранними -->
<img id="fullscreenImage" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" alt="Зображення для повноекранного режиму" />
<div id="fullscreenText">
<p>Це текстовий блок, який можна розгорнути у повноекранний режим для читання.</p>
</div>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
#fullscreenImage {
width: 100%;
max-width: 300px;
margin: 20px 0;
}
#fullscreenText {
background-color: #ddd;
padding: 10px;
margin: 20px 0;
}
JS
// Отримуємо елементи для взаємодії
const image = document.getElementById("fullscreenImage");
const textBlock = document.getElementById("fullscreenText");
const toggleImageBtn = document.getElementById("toggleImageFullscreen");
const toggleTextBtn = document.getElementById("toggleTextFullscreen");
const fullscreenStatus = document.getElementById("fullscreenStatus");
// Функція для оновлення статусу активного повноекранного елемента
function updateFullscreenStatus() {
if (document.fullscreenElement) {
fullscreenStatus.textContent = `Активний повноекранний елемент: ${document.fullscreenElement.tagName}`;
} else {
fullscreenStatus.textContent = "Жоден елемент не перебуває у повноекранному режимі.";
}
}
// Додаємо подію для оновлення статусу при зміні повноекранного режиму
document.addEventListener("fullscreenchange", updateFullscreenStatus);
// Функції для керування повноекранним режимом зображення
toggleImageBtn.addEventListener("click", () => {
if (document.fullscreenElement === image) {
document.exitFullscreen();
} else {
image.requestFullscreen();
}
});
// Функції для керування повноекранним режимом текстового блоку
toggleTextBtn.addEventListener("click", () => {
if (document.fullscreenElement === textBlock) {
document.exitFullscreen();
} else {
textBlock.requestFullscreen();
}
});
//# sourceURL=pen.js
Коментарі
Коментарів ще немає — будьте першим!