Inhaltsverzeichnis
Key Takeaways
Das HTML5 -Fortschritts -Tag
Styling der Fortschrittsleiste
Implementierung der Fortschrittsleiste in JavaScript
Kann ich diese Fortschrittsleiste für andere Arten von AJAX -Anforderungen verwenden, nicht nur für Dateien -Uploads? Das Ereignis „Fortschritt“ wird für jede Art von AJAX -Anforderung entlassen, nicht nur für Dateien -Uploads. Sie müssen den JavaScript -Code ändern, um die entsprechende AJAX -Anforderung zu senden und die Fortschrittsleiste basierend auf dem Fortschritt der Anfrage zu aktualisieren. " > Wie kann ich den Prozentsatz des Hochladens in der Fortschrittsleiste anzeigen? 'Event -Hörer. Sie können den Prozentsatz berechnen, indem Sie den geladenen Betrag durch den Gesamtbetrag dividieren und mit 100 multiplizieren. Dann setzen Sie diesen Wert als Textinhalt des Fortschrittsleistenelements. ? Ein häufiger Grund ist, dass der Hörer des „Fortschritts“ -Ergners nicht korrekt eingerichtet ist. Stellen Sie sicher, dass Sie den Ereignishörer dem richtigen Objekt hinzugefügt haben und dass der Ereignisname korrekt geschrieben ist. Überprüfen Sie auch, ob der Code im Ereignishörer die Wert- und Max -Attribute der Fortschrittsleiste korrekt aktualisiert. Ja, Sie können diese Fortschrittsleiste mit anderen Programmiersprachen wie PHP oder Python verwenden. Die Fortschrittsleiste wird mit HTML und JavaScript implementiert, die clientseitige Technologien sind und mit jeder serverseitigen Technologie interagieren können. Sie müssen die AJAX-Anforderung im JavaScript-Code ändern, um die Datei an Ihr serverseitiges Skript zu senden, und Ihr serverseitiges Skript muss die Datei-Upload verarbeiten und die Fortschrittsinformationen zurückgeben. Ich mache den Fortschrittsbalken reibungslos animieren? Fügen Sie dem Fortschrittsbalkenelement in Ihrem CSS eine "Übergangseigenschaft" hinzu, wobei die Eigenschaft zum Übergang (z. B. "Breite"), die Dauer des Übergangs und die Zeitfunktion (z. B. "linear", "Easy-In" angegeben wird , 'Easy-Out'). Dieses Ereignis wird abgefeuert, wenn während des Uploads ein Fehler auftritt. Im Ereignishörer können Sie dem Benutzer eine Fehlermeldung anzeigen und die Fortschrittsleiste zurücksetzen. Datei hochladen und die Fortschrittsleiste zurücksetzen. Um das Upload des Datei -Uploads zu stornieren, können Sie die Methode "abortieren" im XMLHTTPREquest -Objekt aufrufen. Um die Fortschrittsleiste zurückzusetzen, können Sie sein Wertattribut auf 0 festlegen. Vor dem Senden der AJAX -Anfrage. Sie können die Größe der Datei aus der Eigenschaft "Größe" des Dateiobjekts erhalten. Wenn sie Ihr Limit überschreitet, zeigen

Kann ich diese Fortschrittsleiste für andere Arten von AJAX -Anforderungen verwenden, nicht nur für Dateien -Uploads? Das Ereignis „Fortschritt“ wird für jede Art von AJAX -Anforderung entlassen, nicht nur für Dateien -Uploads. Sie müssen den JavaScript -Code ändern, um die entsprechende AJAX -Anforderung zu senden und die Fortschrittsleiste basierend auf dem Fortschritt der Anfrage zu aktualisieren.

Heim Web-Frontend js-Tutorial So erstellen Sie grafische Dateien hochladen Fortschrittsbalken in HTML5 und JavaScript

So erstellen Sie grafische Dateien hochladen Fortschrittsbalken in HTML5 und JavaScript

Feb 25, 2025 am 10:53 AM

So erstellen Sie grafische Dateien hochladen Fortschrittsbalken in HTML5 und JavaScript

Key Takeaways

  • Das HTML5 -Fortschritts -Tag, das Attribute für den aktuellen Fortschrittswert und -wert nach Abschluss liefert, kann zum Erstellen einer grafischen Datei -Upload -Fortschrittsleiste verwendet werden, obwohl der Autor ein Standard -P -Tag für weitere Styling -Optionen verwendet hat.
  • Die Fortschrittsleiste kann mit CSS gestylt werden, wobei die grüne Balken als Grafik doppelt so breit wie das Fortschrittselement erstellt wurde, und eine feste Farbe, die beim Erfolg des Uploads angewendet wird oder fehlschlägt.
  • Die Fortschrittsleiste wird in JavaScript implementiert, indem die Funktion uploadFile (), eine Ereignishandlerfunktion „Fortschritt“ hinzugefügt wird, die die neue Hintergrundposition berechnet, und eine Klasse von „Erfolg“ oder „Fehler“ beim Abschluss des Uploads festgelegt wird.
In meinen vorherigen Beiträgen haben wir festgestellt, wie HTML5 -Datei Drag & Drop verwendet, Dateien mit JavaScript geöffnet und mit AJAX asynchron hochladen Dateien hochladen. Im letzten Teil dieser Serie behandeln wir den aufregendsten Teil des Prozesses: Grafische Fortschrittsbalken! Datei -Upload -Fortschrittsbalken bieten ein wesentliches Benutzer -Feedback, aber sie waren bekanntermaßen schwierig zu implementieren. Bis jetzt ist das. Sowohl Firefox als auch Chrome unterstützen das XMLHTTPREQUEST2 -Objekt, das einen Fortschrittsereignis -Handler bietet. Aber zuerst überlegen wir, wie unsere Fortschrittsleiste implementiert werden wird…

Das HTML5 -Fortschritts -Tag

Das neue Fortschritts -Tag bietet zwei Attribute:
  • Wert: Der aktuelle Fortschrittswert
  • max: Der Wert nach Abschluss
Das Tag wäre in dieser Demonstration ideal gewesen und obwohl es in Chrome unterstützt wurde, erschien es nur in Firefox 6. Außerdem bietet keiner der Browser viele Styling -Eigenschaften, sodass ich es zugunsten eines Standard -P -Tags fallen ließ. Dies wird als Kind an eine DIV angehängt mit dem ID "Fortschritt".

Styling der Fortschrittsleiste

Unser P -Tag zeigt den Dateinamen in einem ausrandeten Box mit einer Größe von 250px an:
#progress p
{
	display: block;
	width: 240px;
	padding: 2px 5px;
	margin: 2px 0;
	border: 1px inset #446;
	border-radius: 5px;
}
Nach dem Login kopieren
Nach dem Login kopieren
Für die grüne Balken selbst habe ich eine Grafik erstellt, die doppelt so breit war wie das Fortschrittselement (500px). Der linke 250px ist gefärbt und der rechte 250px ist transparent: So erstellen Sie grafische Dateien hochladen Fortschrittsbalken in HTML5 und JavaScript Diese Grafik wird als Hintergrundbild für die Fortschrittsleiste verwendet und bei „x% 0“ positioniert, wobei x% den verbleibenden Anteil angibt (nicht abgeschlossen), d. H.
  • Fortschritt beginnt mit „Hintergrundposition: 100% 0“, d. H. 100% verbleibend
  • Fortschritt endet mit "Hintergrundposition: 0% 0", d. H. Nichts verbleibt
  • „Hintergrundposition: 30% 0“ bedeutet, dass 70% abgeschlossen wurden: So erstellen Sie grafische Dateien hochladen Fortschrittsbalken in HTML5 und JavaScript
Eine feste Farbe wird angewendet, indem eine Klasse festgelegt wird, wenn der Upload erfolgreich ist oder fehlschlägt:
#progress p
{
	display: block;
	width: 240px;
	padding: 2px 5px;
	margin: 2px 0;
	border: 1px inset #446;
	border-radius: 5px;
}
Nach dem Login kopieren
Nach dem Login kopieren

Implementierung der Fortschrittsleiste in JavaScript

Wir können jetzt unsere Funktion uploadFile () ändern. Wenn eine gültige JPG -Datei auftritt, fügen wir ein neues P -Tag an das Element #Progress hinzu und fügen den Dateinamen als Text hinzu:
#progress p.success
{
	background: #0c0 none 0 0 no-repeat;
}

#progress p.failed
{
	background: #c00 none 0 0 no-repeat;
}
Nach dem Login kopieren
Wir benötigen jetzt eine Ereignishandlerfunktion „Fortschritt“. Dies empfängt ein Objekt mit .LADEd und .Totale Eigenschaften - Eine kleine Mathematik ist erforderlich, um die neue Hintergrundzahlung zu berechnen:
// upload JPEG files
function UploadFile(file) {

	var xhr = new XMLHttpRequest();
	if (xhr.upload && file.type == "image/jpeg" && file.size <= $id("MAX_FILE_SIZE").value) {
	
		// create progress bar
		var o = $id("progress");
		var progress = o.appendChild(document.createElement("p"));
		progress.appendChild(document.createTextNode("upload " + file.name));
Nach dem Login kopieren
Wenn Sie mit AJAX vertraut sind, werden Sie den Event -Handler von OnreadyStatechange erkennen. Dies bestimmt, wann das Upload abgeschlossen ist und die Fortschrittsleiste entsprechend stilft (legt eine Klasse von „Erfolg“ fest, wenn der Upload erfolgreich war):
		// progress bar
		xhr.upload.addEventListener("progress", function(e) {
			var pc = parseInt(100 - (e.loaded / e.total * 100));
			progress.style.backgroundPosition = pc + "% 0";
		}, false);
Nach dem Login kopieren
Schließlich senden wir die Datei wie zuvor an unseren PHP -Server:
		// file received/failed
		xhr.onreadystatechange = function(e) {
			if (xhr.readyState == 4) {
				progress.className = (xhr.status == 200 ? "success" : "failure");
			}
		};
Nach dem Login kopieren
Wir haben endlich eine Lösung, die:
  1. Ermöglicht das Ziehen und Ablegen von Dateien auf ein Webseitenelement
  2. Analysen und Zeigt fallengelassene Dateien auf dem Client
  3. an
  4. Asynchron lädt Dateien auf den Server
  5. hoch
  6. zeigt eine grafische Fortschrittsleiste während des Uploads
  7. verwendet progressive Verbesserung, um die meisten Browser
  8. zu unterstützen
  9. wird codiert, ohne eine JavaScript -Bibliothek zu benötigen.

Bitte betrachten Sie die Demonstrationsseite. Beachten Sie jedoch, dass dies auf einem Server ohne PHP gehostet wird, sodass Datei -Uploads nicht auftreten. Um es zu testen, laden Sie die Dateien bitte herunter, um den Code zu untersuchen und auf Ihrem eigenen Server zu hosten. Ich hoffe, Sie haben diese Serie genossen und überlegen, wie Datei Drag and Drop Ihrer Webanwendung helfen könnte. Wenn Sie diesen Beitrag genossen haben, werden Sie Lernable lieben. Der Ort, um frische Fähigkeiten und Techniken von den Meistern zu erlernen. Mitglieder erhalten sofortigen Zugriff auf alle E -Books und interaktiven Online -Kurse von SitePoint, z. B. Lernen HTML5.

häufig gestellte Fragen (FAQs) zu HTML5 JavaScript -Datei Upload Progress -Leiste

Wie kann ich das Erscheinungsbild der Fortschrittsleiste anpassen? Sie können die Farbe, Höhe, Breite und sogar die Form der Fortschrittsbalken ändern. Um beispielsweise die Farbe zu ändern, können Sie die Eigenschaft „Hintergrundfarbe“ verwenden. Sie können auch das Grundstück „Grenze-Radius“ verwenden, um die Fortschrittsleiste kreisförmig oder abgerundet zu machen. Denken Sie daran, die richtige Klasse oder ID in Ihrem CSS abzurichten, um diese Änderungen auf die Fortschrittsleiste anzuwenden. Bar für mehrere Datei -Uploads. Sie müssen jedoch den JavaScript -Code ändern, um mehrere Dateien zu verarbeiten. Sie können das Attribut "Multiple" im Eingabetag verwenden, um die Auswahl mehrerer Dateien zu ermöglichen. In Ihrem JavaScript müssen Sie dann die Dateien durchlaufen und individuell hochladen, wodurch die Fortschrittsleiste für jede Datei aktualisiert wird.

Wie kann ich den Prozentsatz des Hochladens in der Fortschrittsleiste anzeigen? 'Event -Hörer. Sie können den Prozentsatz berechnen, indem Sie den geladenen Betrag durch den Gesamtbetrag dividieren und mit 100 multiplizieren. Dann setzen Sie diesen Wert als Textinhalt des Fortschrittsleistenelements. ? Ein häufiger Grund ist, dass der Hörer des „Fortschritts“ -Ergners nicht korrekt eingerichtet ist. Stellen Sie sicher, dass Sie den Ereignishörer dem richtigen Objekt hinzugefügt haben und dass der Ereignisname korrekt geschrieben ist. Überprüfen Sie auch, ob der Code im Ereignishörer die Wert- und Max -Attribute der Fortschrittsleiste korrekt aktualisiert. Ja, Sie können diese Fortschrittsleiste mit anderen Programmiersprachen wie PHP oder Python verwenden. Die Fortschrittsleiste wird mit HTML und JavaScript implementiert, die clientseitige Technologien sind und mit jeder serverseitigen Technologie interagieren können. Sie müssen die AJAX-Anforderung im JavaScript-Code ändern, um die Datei an Ihr serverseitiges Skript zu senden, und Ihr serverseitiges Skript muss die Datei-Upload verarbeiten und die Fortschrittsinformationen zurückgeben. Ich mache den Fortschrittsbalken reibungslos animieren? Fügen Sie dem Fortschrittsbalkenelement in Ihrem CSS eine "Übergangseigenschaft" hinzu, wobei die Eigenschaft zum Übergang (z. B. "Breite"), die Dauer des Übergangs und die Zeitfunktion (z. B. "linear", "Easy-In" angegeben wird , 'Easy-Out'). Dieses Ereignis wird abgefeuert, wenn während des Uploads ein Fehler auftritt. Im Ereignishörer können Sie dem Benutzer eine Fehlermeldung anzeigen und die Fortschrittsleiste zurücksetzen. Datei hochladen und die Fortschrittsleiste zurücksetzen. Um das Upload des Datei -Uploads zu stornieren, können Sie die Methode "abortieren" im XMLHTTPREquest -Objekt aufrufen. Um die Fortschrittsleiste zurückzusetzen, können Sie sein Wertattribut auf 0 festlegen. Vor dem Senden der AJAX -Anfrage. Sie können die Größe der Datei aus der Eigenschaft "Größe" des Dateiobjekts erhalten. Wenn sie Ihr Limit überschreitet, zeigen

Kann ich diese Fortschrittsleiste für andere Arten von AJAX -Anforderungen verwenden, nicht nur für Dateien -Uploads? Das Ereignis „Fortschritt“ wird für jede Art von AJAX -Anforderung entlassen, nicht nur für Dateien -Uploads. Sie müssen den JavaScript -Code ändern, um die entsprechende AJAX -Anforderung zu senden und die Fortschrittsleiste basierend auf dem Fortschritt der Anfrage zu aktualisieren.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie grafische Dateien hochladen Fortschrittsbalken in HTML5 und JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Apr 10, 2025 am 09:33 AM

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...

See all articles