Dieses Projekt begann mit einem Workplace -Trainingsvideo zum Mobbing - einer wirklich inspirierenden Quelle kreativer Energie! Die elegante Benutzeroberfläche des Videos, insbesondere die Gradienten -Fortschrittsbalken, löste eine Idee aus. Ich wusste<progress></progress>
Element war möglich (dank Pankaj Parashars CSS-Tricks-Post 2016), hatte aber nicht ausgiebig in Video-Manipulation oder JavaScript eingeteilt. Die Herausforderung war an!
Das Ziel war einfach: Synchronisieren Sie den Wert einer Fortschrittsleiste mit dem Wiedergabebestand eines Videos. Es war mehr Spaß als erwartet.
Die HTML
Reines HTML5:
<video src="http://html5videoformatconverter.com/data/images/happyfit2.mp4"></video> <figcaption> ► <button id="play">►</button> <progress id="progress" max="100" value="0">Fortschritt</progress> <label for="progress" id="timer" role="timer"></label> </figcaption>
Der<progress></progress>
Das Element ist der Schlüssel: max="100"
legt den Maximalwert fest, und value="0"
initialisiert ihn auf Null und repräsentiert 0% Fortschritt.
CSS -Styling
Ich werde Pankajs ausgezeichnete CSS nicht wieder aufbauen, aber hier ist der Code für die Gradienten-Fortschrittsbalken, um die Kompatibilität des Cross-Browsers sicherzustellen:
Fortschritt [Wert] { Aussehen: Keine; / * Safari */ Grenze: Keine; / * Firefox */ Farbe: #e52e71; /* Zurückgreifen */ } Fortschritt [Wert] ::-Webkit-Programm-Wert { Hintergrund-Image: Linear-Gradient (rechts, #ff8a00, #e52e71); Übergang: Breite 1s linear; } Fortschritt [Wert] ::-Moz-Progress-Bar { Hintergrund-Image: -moz-linear-Gradient (rechts, #ff8a00, #e52e71); }
JavaScript: Verbinden der Punkte
Das JavaScript umfasst folgende Schritte:
- Aktuelle Videozeit und Dauer erhalten:
video.currentTime
undvideo.duration
. - Berechnen Sie den Fortschrittsprozentsatz:
(currentTime / duration) * 100
. - Aktualisieren Sie den Fortschrittsbalkenwert:
progress.value = roundedPercentage
. - Zeigen Sie verstrichene Zeit an: Aktualisieren Sie ein Timer -Element.
Hier ist der raffinierte Code, der das staatliche Management und requestAnimationFrame
für eine bessere Leistung enthält (dank der wertvollen Eingaben von Neal Fennimore):
const Video = document.querySelector ('Video'); const progress = document.getElementById ('progreshing'); const timer = document.getElementById ('Timer'); const button = document.getElementById ('Play'); const pausiert = 'pausiert'; const spiele = 'spiele'; lass state = pausiert; Funktion progresorloop () { if (state === spielt) { progress.Value = math.round ((Video.CurrentTime / Video.Duration) * 100); timer.innerhtml = math.round (Video.CurrentTime) 'Sekunden'; RequestAnimationFrame (ProgressLoop); } } Funktion onplay () { Zustand = Spielen; ProgressLoop (); button.innerhtml = "❙❙"; } Funktion onPause () { state = pausiert; button.innerhtml = "►"; } Funktion onclick () { if (state === pausiert) { Video.play (); } anders { Video.pause (); } } Video.AdDeVentListener ('Play', Onplay); Video.AdDeVentListener ('Pause', Onpause); Button.AdDeVentListener ('Click', Onclick);
Dieser Code aktualisiert effizient die Fortschrittsleiste und den Timer und bietet eine reibungslose, reaktionsschnelle Benutzererfahrung. Die Hinzufügung einer Play/Pause -Taste verbessert die Benutzerfreundlichkeit, während die staatliche Verwaltung und Verwendung von requestAnimationFrame
eine saubere und leistungsfähige Implementierung gewährleistet. Und ja, ich habe das Trainingsvideo -Quiz gegründet!
Das obige ist der detaillierte Inhalt vonEin unschuldiger Spaß mit HTML -Video und Fortschritt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hier ist ein Container mit einigen Kinderelementen:

Flyout -Menüs! Das zweite, das Sie für ein Menü implementieren müssen, das ein Hover -Ereignis verwendet, um mehr Menüelemente anzuzeigen. Zum einen sollten sie

"Die Kraft des Web liegt in seiner Universalität. Zugang von allen unabhängig von Behinderung ist ein wesentlicher Aspekt."- Tim Berners-Lee

In der Roundup:#039: DatePickers geben Tastaturbenutzer Kopfschmerzen, einen neuen Webkomponenten -Compiler, der bei der Bekämpfung von Fouc hilft.

Die kurze Antwort: Flex-Shrink und Flex-Basis sind wahrscheinlich das, worauf Sie suchen.

Sie können nicht positioniert werden: klebrig; A

In der Welt der Web -Plattform -Nachrichten, in der die Google Search Console in der Welt der Web -Plattform -News -Such -Markup umgeht, lernen wir, dass benutzerdefinierte Eigenschaften einfacher werden können

Das IndieWeb ist eine Sache! Sie haben eine Konferenz und alles bekommen. Der New Yorker schreibt sogar darüber:


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver Mac
Visuelle Webentwicklungstools

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung