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 є важливим інструментом для керування інтерфейсом, що використовує повноекранний режим, і дозволяє розробникам створювати більш інтерактивний та динамічний користувацький досвід.

автор: Bond

Порада

Комбінуйте fullscreenElement з подією fullscreenchange для автоматичного оновлення інтерфейсу. Це корисно, щоб адаптувати інтерфейс відповідно до змін у повноекранному режимі та зробити перехід більш плавним.

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

Для виявлення помилок перевірте, чи fullscreenElement повертає null. Це означає, що повноекранний режим недоступний, і можна або повторити запит на requestFullscreen(), або обробити ситуацію інакше.

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

Якщо використовуєте fullscreenElement для перевірки статусу на мобільних пристроях, пам'ятайте, що підтримка повноекранного режиму може бути обмежена, тому слід перевіряти і сумісність.

автор: Bond

Синтаксис

document.fullscreenElement;

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
71 64 16.4 58 79 11*
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
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));
});
автор: Bond

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

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));
});
автор: Bond

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
автор: Bond

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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