Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Event.volumechange

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

Подія volumechange виникає, коли змінюється рівень гучності аудіо або відео елемента, або коли звук вимикається чи вмикається (mute/unmute). Ця подія може бути корисною для реалізації динамічних елементів інтерфейсу, наприклад, оновлення візуальних індикаторів гучності або для зберігання налаштувань користувача.

Щоб відстежити подію volumechange, використовується метод addEventListener, приклад:

const videoElement = document.querySelector('video');
videoElement.addEventListener('volumechange', (event) => {
  console.log('Гучність змінилася:', videoElement.volume);
});

У цьому прикладі, коли гучність змінюється, у консоль виводиться нове значення рівня гучності. Рівень гучності можна отримати через властивість volume елемента, яка знаходиться у діапазоні від 0.0 (мінімум, без звуку) до 1.0 (максимум). Якщо звук повністю вимкнено, властивість muted буде дорівнювати true.

Окрім прослуховування зміни гучності, можна також програмно змінювати гучність за допомогою властивості volume:

videoElement.volume = 0.5; // встановлення гучності на 50%

Також можна ввімкнути або вимкнути звук за допомогою властивості muted:

videoElement.muted = true; // вимкнення звуку

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

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

Порада:

Можна додати власні контроли для гучності і вимкнення звуку, використовуючи прості повзунки або перемикачі, а подію volumechange — для синхронізації між цими контролями та поведінкою елемента.

Порада:

Важливо враховувати, що гучність може змінюватися поступово (через затримку між кліками або перетягуванням повзунка), тому реакцію на подію варто оптимізувати, щоб уникнути частого виклику важких операцій.

Порада:

Для збереження налаштувань гучності користувача після оновлення сторінки можна використовувати локальне сховище (localStorage). При кожній події volumechange зберігайте поточне значення, а при завантаженні сторінки використовуйте його для налаштування елемента.

Синтаксис

element.addEventListener('volumechange', function(event) {
  // Дії після зміни гучності
});

Значення

Return

Переглядачі

Переглядач

66

57

11.1

53

16

Переглядач

66

66

57

11.3

Переглядач

15.0.0

1.0

Приклади


У цьому прикладі користувач може взаємодіяти з відео за допомогою повзунка для регулювання гучності та кнопки для вимкнення/ввімкнення звуку. При кожній зміні гучності (через повзунок або вимкнення звуку) подія volumechange автоматично оновлює індикатор поточної гучності і змінює текст кнопки залежно від стану звуку. Це дозволяє користувачеві легко керувати звуком відео і бачити зміни в реальному часі.

Цей приклад показує, як динамічно відображати рівень гучності або статус вимкнення звуку в HTML-елементі, наприклад, текстовому індикаторі. При кожній зміні гучності (включаючи вимкнення звуку) індикатор оновлюється, показуючи актуальний стан.

const videoElement = document.querySelector('video');
const volumeIndicator = document.getElementById('volume-indicator');

// Відображаємо рівень гучності на індикаторі
videoElement.addEventListener('volumechange', () => {
  const volumePercent = Math.round(videoElement.volume * 100);
  volumeIndicator.textContent = `Гучність: ${volumePercent}%`;

  if (videoElement.muted) {
    volumeIndicator.textContent = 'Звук вимкнено';
  }
});

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

const videoElement = document.querySelector('video');

// Зберігаємо налаштування гучності користувача в localStorage
videoElement.addEventListener('volumechange', () => {
  const userVolume = {
    volume: videoElement.volume,
    muted: videoElement.muted,
  };
  localStorage.setItem('userVolume', JSON.stringify(userVolume));
});

// Встановлюємо збережені налаштування при завантаженні сторінки
const savedVolume = JSON.parse(localStorage.getItem('userVolume'));
if (savedVolume) {
  videoElement.volume = savedVolume.volume;
  videoElement.muted = savedVolume.muted;
}