Maison >interface Web >js tutoriel >Comment créer des barres de progression de téléchargement de fichiers graphiques dans HTML5 et JavaScript
#progress p { display: block; width: 240px; padding: 2px 5px; margin: 2px 0; border: 1px inset #446; border-radius: 5px; }Pour la barre verte elle-même, j'ai créé un graphique qui était deux fois plus large que l'élément de progression (500px). La gauche 250px est colorée et la droite 250px est transparente:
#progress p { display: block; width: 240px; padding: 2px 5px; margin: 2px 0; border: 1px inset #446; border-radius: 5px; }
#progress p.success { background: #0c0 none 0 0 no-repeat; } #progress p.failed { background: #c00 none 0 0 no-repeat; }Nous avons maintenant besoin d'une fonction de gestionnaire d'événements «Progress». Cela reçoit un objet avec des propriétés. Télélées et.
// 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));Si vous connaissez Ajax, vous reconnaîtrez le gestionnaire d'événements OnreadyStateChange. Cela détermine quand le téléchargement s'est terminé et styles la barre de progression en conséquence (définit une classe de «succès» si le téléchargement a réussi):
// progress bar xhr.upload.addEventListener("progress", function(e) { var pc = parseInt(100 - (e.loaded / e.total * 100)); progress.style.backgroundPosition = pc + "% 0"; }, false);Enfin, nous envoyons le fichier à notre serveur PHP comme avant:
// file received/failed xhr.onreadystatechange = function(e) { if (xhr.readyState == 4) { progress.className = (xhr.status == 200 ? "success" : "failure"); } };Nous avons enfin une solution qui:
Personnalisation L'apparence de la barre de progrès peut être effectuée à l'aide de CSS. Vous pouvez modifier la couleur, la hauteur, la largeur et même la forme de la barre de progrès. Par exemple, pour modifier la couleur, vous pouvez utiliser la propriété «fond d'arrière-plan». Vous pouvez également utiliser la propriété «Border-Radius» pour rendre la barre de progression circulaire ou arrondie. N'oubliez pas de cibler la classe ou l'identification correcte de votre CSS pour appliquer ces modifications à la barre de progression.
Oui, vous pouvez utiliser ce progrès bar pour plusieurs téléchargements de fichiers. Cependant, vous devrez modifier le code JavaScript pour gérer plusieurs fichiers. Vous pouvez utiliser l'attribut «multiple» dans la balise d'entrée pour permettre la sélection de plusieurs fichiers. Ensuite, dans votre javascript, vous devrez parcourir les fichiers et les télécharger individuellement, à la mise à jour de la barre de progression pour chaque fichier.
L'affichage du pourcentage d'achèvement de téléchargement sur la barre de progression peut être réalisé en mettant à jour le contenu texte de l'élément de barre de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progression dans l'élément de progrès 'Écouteur d'événements. Vous pouvez calculer le pourcentage en divisant la quantité chargée par la quantité totale et en multipliant par 100. Ensuite, définissez cette valeur comme le contenu texte de l'élément de barre de progression.
Si votre barre de progression ne se met pas à jour pendant le téléchargement de fichiers, cela pourrait être dû à plusieurs raisons. Une raison courante est que l'auditeur d'événements «Progress» n'est pas configuré correctement. Assurez-vous que vous avez ajouté l'écouteur d'événements à l'objet correct et que le nom de l'événement est correctement orthographié. Vérifiez également que le code à l'intérieur de l'écouteur d'événements met à jour correctement la valeur et les attributs max de la barre de progression.
Oui, vous pouvez utiliser cette barre de progrès avec d'autres langages de programmation comme PHP ou Python. La barre de progression est implémentée à l'aide de HTML et JavaScript, qui sont des technologies côté client et peuvent interagir avec n'importe quelle technologie côté serveur. Vous devrez modifier la demande AJAX dans le code JavaScript pour envoyer le fichier à votre script côté serveur, et votre script côté serveur devra gérer le téléchargement du fichier et renvoyer les informations de progression.
Pour que la barre de progrès soit en douceur, vous pouvez utiliser les transitions CSS. Ajoutez une propriété «transition» à l'élément de barre de progression dans votre CSS, en spécifiant la propriété à la transition (par exemple, «largeur»), la durée de la transition et la fonction de synchronisation (par exemple, «linéaire», «facilité» , «faciliter»).
Les erreurs de traitement pendant le téléchargement de fichiers peuvent être effectuées dans l'écouteur d'événements «Erreur». Cet événement est licencié lorsqu'une erreur se produit pendant le téléchargement. Dans l'événement, vous pouvez afficher un message d'erreur à l'utilisateur et réinitialiser la barre de progression.
Oui, vous pouvez annuler le Téléchargement de fichiers et réinitialisez la barre de progression. Pour annuler le téléchargement de fichiers, vous pouvez appeler la méthode «Aborter» sur l'objet XMLHTTPRequest. Pour réinitialiser la barre de progression, vous pouvez définir son attribut de valeur sur 0.
limiter la taille du fichier pour le téléchargement peut être effectué dans le code JavaScript Avant d'envoyer la demande Ajax. Vous pouvez obtenir la taille du fichier à partir de la propriété «Taille» de l'objet de fichier, et si elle dépasse votre limite, affichez un message d'erreur et avortez le téléchargement.
Oui, vous pouvez utiliser cette barre de progression pour d'autres types de demandes AJAX, pas seulement les téléchargements de fichiers. L'événement «Progress» est licencié pour tout type de demande AJAX, pas seulement les téléchargements de fichiers. Vous devrez modifier le code JavaScript pour envoyer la demande AJAX appropriée et mettre à jour la barre de progression en fonction de la progression de la demande.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!