EinführungIch habe schon einmal ein Problem festgestellt: Manchmal, wenn ich mir Lernvideos ansehe, beschwere ich mich immer, dass die Bewegungen zu langsam sind und es für den Lehrer Zeitverschwendung ist, an die Tafel zu schreiben. Wenn ich die Wiedergabegeschwindigkeit auf ein angemessenes Niveau einstellen könnte, würde das nicht nur meine Lerneffizienz verbessern, sondern mir auch das Anschauen angenehmer machen. So habe ich gelernt, die folgende Webseite zu schreiben, implementiert durch HTML+CSS+JavaScript. Tipp: Das Folgende ist der Hauptinhalt dieses Artikels. Die folgenden Fälle können als Referenz verwendet werden 1. Fertigprodukteffekt2. Konkrete Umsetzung1. HTML+CSS für ein einfaches Layout Der Code lautet wie folgt (Beispiel): <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <link rel="stylesheet" href="style.css" rel="externes nofollow" > <title>Videowiedergabe</title> </Kopf> <Text> <div id="Wrapper"> <video width="765" height="430" src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" steuert class="flex"></video> <div Klasse="Geschwindigkeit"> <div class="speed-bar">1x</div> </div> </div> <script src="./index.js"></script> </body> </html> *{ Rand: 0; Polsterung: 0; } Körper{ min-height: 100vh;/* vh relative Einheit, relativ zur Browsergröße*/ Hintergrund: #4c4c4c url('https://unsplash.it/1500/900?image=1021'); background-size: cover;/*Verwende den Container als Grundlage und decke den Container vollständig ab, auch wenn das Bild verzerrt oder unscharf ist*/ /*margin: auto;/* margin:auto und margin:0 auto, aber die Breite und Höhe des übergeordneten Containers sind unbekannt, daher nicht geeignet*/ display: flex;/*Stellen Sie den Container auf einen flexiblen Container ein*/ justify-content: center; /*In X-Richtung zentriert*/ align-items: center; /*In Y-Richtung zentrieren*/ /*Außerschulische Erweiterung: Alle Möglichkeiten die Box in vertikaler Richtung zu zentrieren*/ } #Verpackung{ Breite: 850px; Anzeige: Flex; } .Geschwindigkeit{ flex: 1;/*Verhältnisvererbung, es sollte eine 1:1-Vererbung sein, aber vedio hat eine feste Breite, also übernimmt speed die verbleibende Breite*/ Rand: 10px; Hintergrundfarbe: #fff; Rahmenradius: 50px; Anzeige: Flex; overflow: hidden;/*Wird verwendet, um festzulegen, dass der untergeordnete Container das Limit nicht überschreiten kann und den abgerundeten Eckeneffekt der übergeordneten Klasse beibehält*/ Elemente ausrichten: Flex-Start;/* */ } .Geschwindigkeitsleiste{ Breite: 100 %; Höhe: 16,3 %; Hintergrund: linearer Farbverlauf (-170 Grad, #2376ae 0 %, #c16ecf 100 %); /*Farbverlaufsstil festlegen*/ display: flex; /* Ermöglicht dem Container, die nächsten beiden Stile festzulegen */ Inhalt ausrichten: zentriert; Elemente ausrichten: zentrieren; Farbe: #fff; Cursor: Zeiger; } Das Layout von HTML ist ziemlich standardmäßig. Es legt lediglich einen ID-Selektor für die Verpackung fest und verwendet dann die integrierte Videowiedergabefunktion von H5 über das Video-Tag. Das abgespielte Video kann durch Ändern der Quelle geändert werden. 2. JS-Implementierungsfunktion Der Code lautet wie folgt (Beispiel): //1. Die zu bedienende DOM-Struktur abrufen //2. Die Distanz abrufen, über die die Maus auf dem DOM gleitet //3. Die Höhe des DOM ändern //4. Die Wiedergabegeschwindigkeit des Videos ändern // Die entsprechende DOM-Struktur abrufen var speed = document.querySelector ('.speed') // Ergänzung: getElementsByClassName dient zum Abrufen des Klassenselektors var bar = document.querySelector ('.speed-bar') var video = document.querySelector('.flex') speed.addEventListener('mousemove',function(e){ //Einfach ausgedrückt zeigt es auf das aktuelle Ereignis (Klick, Mouseover usw.) und speichert die Informationen des aktuellen Ereignisses. Beispielsweise verfügt ein Mausklickereignis über die Informationen zu den Mauskoordinaten. //console.log(e); var y = e.pageY-speed.offsetTop //Der Abstand der Maus im rechten Container offsetTop dient zum Abrufen des Abstands von einer bestimmten DOM-Struktur zum oberen Rand des Browsers var percent = y / speed.offsetHeight //offsetHeight dient zum Abrufen der Höhe einer bestimmten DOM-Struktur selbst var min = 0,4 //Geschwindigkeitsbegrenzung festlegen var max = 4 var playbackRate = Prozent * (max-min)+min //Geschwindigkeitsberechnung var height = Math.round(Prozent * 100)+'%' //Math.abs() nimmt auch absolute Werte an bar.textContent = playbackRate.toFixed(2)+'×' //Textinhalt im DOM ändern toFixed(x) behält x Dezimalstellen bei video.playbackRate = playbackRate //Wiedergabegeschwindigkeit des Videos anpassen bar.style.height = height //Anzeigehöhe des Mehrfachtextes anpassen }) //Hinweis: Die beiden Parameter der Funktion sind: Auf Mausklickereignisse warten, die Funktion innerhalb der Funktion definieren und zur Rückruffunktion werden Der Schlüssel liegt in der Realisierung der Steuerfunktion bei s. Beim Schreiben des Js-Abschnitts sollten wir uns darüber im Klaren sein, was Js für uns tun soll. 1. Holen Sie sich die zu bedienende DOM-Struktur Mit dem Ziel vor Augen werden wir es nacheinander umsetzen. Für die konkrete Umsetzung können Sie direkt auf den Originalcode verweisen. Hier konzentrieren wir uns auf die Rückruffunktion und das Prinzip der Mausgeschwindigkeitssteuerung. Sie können sehen Dies ist das Ende dieses Artikels über die einfache Verwendung von JS zur Steuerung der Videowiedergabegeschwindigkeit. Weitere relevante Inhalte zur Videowiedergabegeschwindigkeit mit JS finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So ändern Sie die Zeitzone und die Uhrzeit im Ubuntu-System
Der detaillierte Prozess zum Konfigurieren des My...
Lösung Fügen Sie position:relative zum übergeordn...
Erstellen Sie docker-compose.yml und füllen Sie d...
TypeScript-Bündelung Webpack-Integration Normaler...
Das mit dem offiziellen Docker-Register erstellte...
In diesem Artikel wird der spezifische JavaScript...
Klassifizierung der Website-Erfahrung 1. Sinneser...
Inhaltsverzeichnis Hintergrund Problemort Weitere...
In diesem Artikelbeispiel wird der spezifische Co...
XML-Dateien sollten so weit wie möglich in UTF-8 ...
1. Einleitung Beim Schreiben einer Seite stoßen w...
Als Front-End-Webentwickler sind Sie beim Erstell...
Inhaltsverzeichnis Was passiert, wenn die Ausführ...
Inhaltsverzeichnis 1. Ändern Sie durch Binden des...
Vorwort Bei der tatsächlichen Entwicklung werden ...