Day 28 or JavaScript30
This commit is contained in:
parent
13f7eb835c
commit
e86b31ee50
39
Video Speed Controller [28-30]/index.html
Normal file
39
Video Speed Controller [28-30]/index.html
Normal file
@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Video Speed Scrubber</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link rel="icon" href="https://fav.farm/✅" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="wrapper">
|
||||
<video class="flex" width="765" height="430" src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" loop controls></video>
|
||||
<div class="speed">
|
||||
<div class="speed-bar">1×</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const speed = document.querySelector('.speed');
|
||||
const bar = speed.querySelector('.speed-bar');
|
||||
const video = document.querySelector('.flex');
|
||||
|
||||
function handleMove(e) {
|
||||
const y = e.pageY - this.offsetTop;
|
||||
const percent = y / this.offsetHeight;
|
||||
const min = 0.4;
|
||||
const max = 4;
|
||||
const height = Math.round(percent * 100) + '%';
|
||||
const playbackRate = percent * (max - min) + min;
|
||||
bar.style.height = height;
|
||||
bar.textContent = playbackRate.toFixed(2) + '×';
|
||||
video.playbackRate = playbackRate;
|
||||
}
|
||||
|
||||
speed.addEventListener('mousemove', handleMove);
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
42
Video Speed Controller [28-30]/style.css
Normal file
42
Video Speed Controller [28-30]/style.css
Normal file
@ -0,0 +1,42 @@
|
||||
body {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: #4C4C4C url('https://unsplash.it/1500/900?image=1021');
|
||||
background-size: cover;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width: 850px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
video {
|
||||
box-shadow: 0 0 1px 3px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.speed {
|
||||
background: #efefef;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin: 10px;
|
||||
border-radius: 50px;
|
||||
box-shadow: 0 0 1px 3px rgba(0,0,0,0.1);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.speed-bar {
|
||||
width: 100%;
|
||||
background: linear-gradient(-170deg, #2376ae 0%, #c16ecf 100%);
|
||||
text-shadow: 1px 1px 0 rgba(0,0,0,0.2);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 2px;
|
||||
color: white;
|
||||
height: 16.3%;
|
||||
}
|
Loading…
Reference in New Issue
Block a user