Skip to content

Commit 371ab12

Browse files
author
Justin Ramel
committed
WIP video
1 parent 1bb9cdc commit 371ab12

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

11 - Custom Video Player/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<div class="progress">
1515
<div class="progress__filled"></div>
1616
</div>
17-
<button class="player__button toggle" title="Toggle Play"></button>
17+
<button class="player__button toggle" title="Toggle Play">▶️</button>
1818
<input type="range" name="volume" class="player__slider" min=0 max="1" step="0.05" value="1">
1919
<input type="range" name="playbackRate" class="player__slider" min="0.5" max="2" step="0.1" value="1">
2020
<button data-skip="-10" class="player__button">« 10s</button>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const player = document.querySelector('.player')
2+
const video = player.querySelector('video')
3+
const progress = player.querySelector('.progress')
4+
const progressBar = player.querySelector('.progress__filled')
5+
const toggle = player.querySelector('.toggle')
6+
const skipButtons = player.querySelectorAll('[data-skip]')
7+
const ranges = player.querySelectorAll('.player__slider')
8+
9+
function togglePlay () {
10+
if (video.paused) {
11+
video.play()
12+
} else {
13+
video.pause()
14+
}
15+
}
16+
17+
function skip () {
18+
const seconds = Number(this.dataset.skip)
19+
video.currentTime += seconds
20+
}
21+
22+
function updatePlayButton () {
23+
toggle.innerHTML = this.paused ? '▶️' : '⏸'
24+
}
25+
26+
function updateRange () {
27+
const attribute = this.getAttribute('name')
28+
video[attribute] = Number(this.value)
29+
}
30+
31+
video.addEventListener('click', togglePlay)
32+
video.addEventListener('play', updatePlayButton)
33+
video.addEventListener('pause', updatePlayButton)
34+
toggle.addEventListener('click', togglePlay)
35+
skipButtons.forEach(btn => btn.addEventListener('click', skip))
36+
ranges.forEach(range => range.addEventListener('click', updateRange))

0 commit comments

Comments
 (0)