Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 92afd1a

Browse files
add task12 and update the answer of task 11
1 parent 06628fc commit 92afd1a

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
const toggle = player.querySelector('.toggle');
7+
const skipButtons = player.querySelectorAll('[data-skip]');
8+
const ranges = player.querySelectorAll('.player__slider');
9+
10+
/* Build out functions */
11+
function togglePlay() {
12+
const method = video.paused ? 'play' : 'pause';
13+
video[method]();
14+
}
15+
16+
function updateButton() {
17+
const icon = this.paused ? '►' : '❚ ❚';
18+
console.log(icon);
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 the event listners */
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+
ranges.forEach(range => range.addEventListener('change', handleRangeUpdate));
49+
ranges.forEach(range => range.addEventListener('mousemove', handleRangeUpdate));
50+
51+
let mousedown = false;
52+
progress.addEventListener('click', scrub);
53+
progress.addEventListener('mousemove', (e) => mousedown && scrub(e));
54+
progress.addEventListener('mousedown', () => mousedown = true);
55+
progress.addEventListener('mouseup', () => mousedown = false);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Key Detection</title>
6+
<script type="text/javascript" src="http://www.cornify.com/js/cornify.js"></script>
7+
</head>
8+
<body>
9+
<script>
10+
</script>
11+
</body>
12+
</html>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /