<header>
<h2 class="title">HTML Events: canplay</h2>
<p class="description">Подія сигналізує, що медіафайл готовий до відтворення.</p>
</header>
<main>
<div class="result">
<!-- Відео елемент -->
<video id="myVideo" width="400" controls>
<source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
Ваш браузер не підтримує відтворення відео.
</video>
<!-- Індикатор завантаження -->
<div id="loadingIndicator">Завантаження відео...</div>
<!-- Кнопки управління -->
<button id="playButton" disabled>Play</button>
<button id="pauseButton" disabled>Pause</button>
</div>
</main>
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
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;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
#loadingIndicator {
color: red;
margin-top: 10px;
}
// Отримуємо елементи з DOM
const video = document.getElementById('myVideo');
const playButton = document.getElementById('playButton');
const pauseButton = document.getElementById('pauseButton');
const loadingIndicator = document.getElementById('loadingIndicator');
// Додаємо обробник події 'canplay'
video.addEventListener('canplay', function() {
// Приховуємо індикатор завантаження
loadingIndicator.style.display = 'none';
// Активуємо кнопки відтворення та паузи
playButton.disabled = false;
pauseButton.disabled = false;
});
// Додаємо обробник події для кнопки Play
playButton.addEventListener('click', function() {
video.play();
});
// Додаємо обробник події для кнопки Pause
pauseButton.addEventListener('click', function() {
video.pause();
});
// Додаємо обробник події 'waiting', щоб показувати індикатор завантаження при буферизації
video.addEventListener('waiting', function() {
loadingIndicator.style.display = 'block';
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.