Skip to content

Commit 1f872e5

Browse files
committed
Day 11: Add a custom video player
My favorite part of this was reiterating how powerful it is to listen for and console.log an event: thing(e). You get all of the methods available on that object in devtools.
1 parent 28a4779 commit 1f872e5

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// *************************************
2+
//
3+
// Custom Video Player
4+
// -> Description
5+
//
6+
// *************************************
7+
8+
function customVideoPlayer() {
9+
10+
// -------------------------------------
11+
// Private Variables
12+
// -------------------------------------
13+
14+
const player = document.querySelector('.player');
15+
const video = player.querySelector('.viewer');
16+
const playToggle = player.querySelector('.toggle');
17+
const ranges = player.querySelectorAll('.player__slider');
18+
19+
// -------------------------------------
20+
// Set Event Handlers
21+
// -------------------------------------
22+
23+
video.addEventListener('click', togglePlay);
24+
playToggle.addEventListener('click', togglePlay);
25+
video.addEventListener('play', updateButton);
26+
video.addEventListener('pause', updateButton);
27+
ranges.forEach(range => range.addEventListener('change', handleRangeUpdate));
28+
ranges.forEach(range => range.addEventListener('mousemove', handleRangeUpdate));
29+
30+
// -------------------------------------
31+
// Functions
32+
// -------------------------------------
33+
34+
function togglePlay () {
35+
36+
if (video.paused) {
37+
video.play();
38+
} else {
39+
video.pause();
40+
}
41+
42+
}
43+
44+
function updateButton () {
45+
const icon = this.paused ? '►' : '❚ ❚';
46+
console.log(icon);
47+
playToggle.textContent = icon;
48+
}
49+
50+
function handleRangeUpdate () {
51+
video[this.name] = this.value;
52+
}
53+
54+
}
55+
56+
// -------------------------------------
57+
// Initialize
58+
// -------------------------------------
59+
60+
customVideoPlayer();

0 commit comments

Comments
 (0)