Skip to content

Commit cbbc5b3

Browse files
committed
Completed wesbos#11 - Custom Video Player/scripts.js and wesbos#12 - Key Sequence Detection/index-START.html
1 parent 263f4fb commit cbbc5b3

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/* Get Our Elements */
2+
const player = document.querySelector('.player');
3+
const video = player.querySelector('.viewer');
4+
const progress = player.querySelector('.progress');
5+
const progressBar = player.querySelector('.progress__filled');
6+
7+
const toggle = player.querySelector('.toggle');
8+
const skipButtons = player.querySelectorAll('[data-skip]');
9+
const ranges = player.querySelectorAll('.player__slider');
10+
11+
/* Build out Functions */
12+
function togglePlay() {
13+
const togglePlay = video.paused ? 'play' : 'pause';
14+
video[togglePlay]();
15+
}
16+
17+
function updateButton() {
18+
const icon = this.paused ? '►' : '❚ ❚';
19+
toggle.textContent = icon;
20+
}
21+
22+
function skip() {
23+
video.currentTime += parseFloat(this.dataset.skip);
24+
}
25+
26+
function handleRangeUpdate() {
27+
video[this.name] = this.value;
28+
}
29+
30+
function handleProgress() {
31+
const percent = (video.currentTime / video.duration) * 100;
32+
progressBar.style.flexBasis = `${percent}%`;
33+
}
34+
35+
function scrub(e) {
36+
const scrubTime = (e.offsetX / progress.offsetWidth) * video.duration;
37+
video.currentTime = scrubTime;
38+
}
39+
40+
/* Hook up event listeners */
41+
video.addEventListener('click', togglePlay);
42+
video.addEventListener('play', updateButton);
43+
video.addEventListener('pause', updateButton);
44+
video.addEventListener('timeupdate', handleProgress);
45+
46+
toggle.addEventListener('click', togglePlay);
47+
skipButtons.forEach(button => button.addEventListener('click', skip));
48+
49+
ranges.forEach(range => range.addEventListener('change', handleRangeUpdate));
50+
ranges.forEach(range => range.addEventListener('mousemove', handleRangeUpdate));
51+
52+
let mousedown = false;
53+
progress.addEventListener('click', scrub);
54+
progress.addEventListener('mousemove', (e) => mousedown && scrub(e));
55+
progress.addEventListener('mousedown', () => mousedown = true);
56+
progress.addEventListener('mouseup', () => mousedown = false);

12 - Key Sequence Detection/index-START.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,20 @@
77
</head>
88
<body>
99
<script>
10+
const pressed = [];
11+
const secretCode = 'wesbos';
12+
13+
window.addEventListener('keyup', (e) => {
14+
console.log(e.key);
15+
pressed.push(e.key);
16+
pressed.splice(-secretCode.length - 1, pressed.length - secretCode.length);
17+
18+
if(pressed.join('').includes(secretCode)) {
19+
console.log('DING DING');
20+
cornify_add();
21+
}
22+
console.log(pressed);
23+
})
1024
</script>
1125
</body>
1226
</html>

0 commit comments

Comments
 (0)