Maison interface Web js tutoriel À propos du téléchargement par glisser-déposer js [Un processus de téléchargement par glisser-déposer pour modifier l'avatar]

À propos du téléchargement par glisser-déposer js [Un processus de téléchargement par glisser-déposer pour modifier l'avatar]

Jan 12, 2017 pm 05:07 PM
拖拽上传

De nombreux navigateurs modernes prennent désormais en charge les opérations de lecture de fichiers par glisser-déposer, et leurs avantages ne se répéteront plus. Le temps frontal a utilisé le glisser-déposer pour améliorer le processus de téléchargement d'avatars du site Web et a résumé les points clés et l'expérience pratique.

Jetons d'abord un coup d'œil à la vue globale :

关于js拖拽上传 [一个拖拽上传修改头像的流程]

1 La zone d'acceptation du glisser-déposer du fichier doit être clairement marquée et doit être la même. aussi grand que possible (en raison de la mise en page). La raison en est que la zone de glisser-déposer de cette interface n'est pas grande. Vous pouvez utiliser une zone en pointillés et d’autres styles pour inciter les utilisateurs à glisser-déposer des fichiers. Il est préférable d’avoir des invites textuelles et des icônes évidentes.

2. Dans l'expérience interactive, lorsqu'un fichier est glissé dans la fenêtre du navigateur, la zone de glisser-déposer peut être utilisée pour changer la couleur d'arrière-plan, etc. pour inviter l'utilisateur à une opération de dépôt.
Code d'implémentation :

doc.bind({ 
'dragenter':function(e){ 
$("#brsbox").addClass("dragbrowse"); 
dropbox.addClass("shine"); 
return false; 
}, 
'dragleave':function(e){ 
dropbox.removeClass("shine"); 
return false; 
}, 
'drop':function(e){ 
stopdft(e);} 
}); 
dropbox.bind({ 
'dragenter':function(e){ 
dropbox.addClass("candrop"); 
stopdft(e);}, 
'dragleave':function(e){ 
dropbox.removeClass("candrop"); 
stopdft(e);}, 
'dragover':function(e){ 
stopdft(e);}, 
'drop':function(e){ 

}
Copier après la connexion

Pour les navigateurs qui ne prennent pas en charge le glisser-déposer :

Malheureusement, certains navigateurs ne prennent pas en charge la lecture des fichiers par glisser-déposer, notamment IE9. Attendez un navigateur plus moderne. Par conséquent, nous devons préparer la navigation et le téléchargement de fichiers ordinaires comme solution de sauvegarde pour les navigateurs qui ne prennent pas en charge le glisser-déposer.
Lorsque la lecture de fichiers par glisser-déposer n'est pas prise en charge, l'interface est la suivante :

关于js拖拽上传 [一个拖拽上传修改头像的流程]

Le code pour implémenter la détection est le suivant :

it.detectDragable = function(){ 
filedrag = !!window.FileReader; 
if(!filedrag) return; 
$("#avtcnt").addClass('dragable');
Copier après la connexion

Lors du placement des fichiers Traitement :

关于js拖拽上传 [一个拖拽上传修改头像的流程]

Lorsque le fichier est placé dans la zone acceptable, veuillez noter que si le fichier que vous faites glisser et déposez avec la souris est unique ou multiple, le navigateur et le système d'exploitation seront e.dataTransefer.les fichiers transférés entre sont toujours pluriels. C'est-à-dire plusieurs fichiers. Cela signifie également que vous devez parcourir les fichiers transportés par la souris.
Le code est le suivant :

dropdom.addEventListener('drop',function(e){ 
it.handlefile(e.dataTransfer.files); 
stopdft(e);},false); 

}; 

it.handlefile = function(files){ 
var noimg = 0; 
for(var i=0; i<files.length; i++){ 
var file = files[i]; 
if(!file.type.match(/image*/)){ 
noimg ++; 
if(noimg ==files.length){ 
QSL.optTips(&#39;请选择jpg, png, gif 等格式的图片&#39;); 
return false; 
} 
continue; 
} 

var reader = new FileReader(); 
reader.onload = function(e){ 
var img = document.createElement(&#39;img&#39;); 
img.src = reader.result; 
setTimeout(function(){ 
it.imgSize = { 
w:img.width, 
h:img.height 
}; 
},500); 
dropdom.innerHTML=""; 
img.className =&#39;localimg&#39;; 
it.imgData = reader.result; 
dropdom.appendChild(img); 
imagedata.empty().val(reader.result); 
dropbox.addClass("droped"); 
clearner.show(); 
}; 
reader.readAsDataURL(file); 

}
Copier après la connexion

Traitement des fichiers glissés vers le navigateur


Le stopdft(e) sert à empêcher le fonctionnement par défaut du navigateur et à ne pas l'ouvrir avec le document du navigateur. Au lieu de cela, le script gère les fichiers glissés et déposés.
Dans ce processus, nous avons besoin de fichiers image, il est donc pratique d'utiliser l'objet e.dataTransfer.files pour trouver des fichiers de type image.
Sinon, cela vous sera demandé.

Code clé pour la lecture des fichiers :
var reader = new FileReader();


reader.onload = function(e){
var img = document. ('img');
img.src = reader.result;
};
reader.readAsDataURL(file); . Nous avons donc effectué les opérations suivantes
setTimeout(function(){
it.imgSize = {
w:img.width,
h:img.height
};
}, 500);
Bien qu'il soit en train de lire un fichier local, il y a encore un délai pour garantir que l'image est réellement lue. Sinon, les valeurs de largeur et de hauteur risquent de ne pas être obtenues dans certains navigateurs. (Existe-t-il une autre méthode plus simple ? Veuillez le signaler)

Supprimer les images existantes et réinitialiser la zone de déplacement :
Après avoir parcouru et lu les images locales, offrez aux utilisateurs des options de suppression et de réinitialisation. (Il est bien sûr plus facile de télécharger directement)

it.resetDropbox = function(){ 
dropbox.attr("class","dropbox") 
.empty() 
.text("将文件拖拽至此区域"); 
imgData = &#39;&#39;; 
it.imgData = &#39;&#39;; 
it.imgSize = {w:0,h:0}; 
picsub.removeClass("uploading") 
.find("button").removeAttr("disabled") 
.text("上传"); 
imagedata.val(&#39;&#39;); 
clearner.hide();
Copier après la connexion
Réinitialiser la zone de glisser-déposer

Le processus de glisser-déposer pour lire les fichiers est fondamentalement terminé ici.
Autres avantages de l'utilisation du glisser-déposer pour lire les fichiers locaux :
Le processus ordinaire de téléchargement et de modification des images est le suivant : sélectionnez l'image - téléchargez l'image - téléchargez l'image avec succès - le serveur renvoie l'effet de navigation du client d'image
Et si vous utilisez le glisser-déposer, la lecture des fichiers locaux peut éviter l'étape de renvoi des images depuis le serveur et utiliser directement les données renvoyées par reader.result.
Cela permet d'économiser le délai de lecture des images à partir du serveur et d'économiser le trafic de données aller-retour. Il suffit donc de confirmer que le téléchargement de l'image côté serveur est réussi et que l'aperçu de l'image peut récupérer les données locales :
Code :

function initImageCrop(url){ 
var t = document.getElementById("target"), 
p = document.getElementById("preview"), 
b = browseImage, 
s = [], 
ts = []; 
if(url==&#39;data&#39;){ 
t.src = b.imgData; 
p.src = b.imgData; 
posImage(b.imgSize.w,b.imgSize.h); 
}else{ 
var cutimg = new Image(); 
cutimg.onload = function(){ 
t.src = url; 
p.src = url; 
posImage(cutimg.width,cutimg.height); 
} 
cutimg.src = url;
Copier après la connexion
Traitement après le téléchargement réussi de l'image

Plus à propos de js drag Téléchargement par glisser-déposer [un processus de téléchargement par glisser-déposer pour modifier les avatars] Pour les articles connexes, veuillez faire attention au site Web PHP chinois !

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Comment créer et publier mes propres bibliothèques JavaScript? Comment créer et publier mes propres bibliothèques JavaScript? Mar 18, 2025 pm 03:12 PM

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

Comment optimiser le code JavaScript pour les performances dans le navigateur? Comment optimiser le code JavaScript pour les performances dans le navigateur? Mar 18, 2025 pm 03:14 PM

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Comment déboguer efficacement le code JavaScript à l'aide d'outils de développeur de navigateur? Mar 18, 2025 pm 03:16 PM

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

Effets de la matrice jQuery Effets de la matrice jQuery Mar 10, 2025 am 12:52 AM

Apportez des effets de film de matrice à votre page! Ceci est un plugin jQuery cool basé sur le célèbre film "The Matrix". Le plugin simule les effets de caractère vert classique dans le film, et sélectionnez simplement une image et le plugin le convertira en une image de style matrice remplie de caractères numériques. Venez et essayez, c'est très intéressant! Comment ça marche Le plugin charge l'image sur la toile et lit le pixel et les valeurs de couleur: data = ctx.getImagedata (x, y, settings.grainsize, settings.grainsize) .data Le plugin lit intelligemment la zone rectangulaire de l'image et utilise jQuery pour calculer la couleur moyenne de chaque zone. Ensuite, utilisez

Comment construire un simple curseur jQuery Comment construire un simple curseur jQuery Mar 11, 2025 am 12:19 AM

Cet article vous guidera pour créer un carrousel d'image simple à l'aide de la bibliothèque JQuery. Nous utiliserons la bibliothèque BXSLider, qui est construite sur jQuery et offre de nombreuses options de configuration pour configurer le carrousel. De nos jours, Picture Carrousel est devenue une fonctionnalité incontournable sur le site Web - une image vaut mieux que mille mots! Après avoir décidé d'utiliser le carrousel d'image, la question suivante est de savoir comment la créer. Tout d'abord, vous devez collecter des images de haute qualité et haute résolution. Ensuite, vous devez créer un carrousel d'image en utilisant HTML et un code JavaScript. Il existe de nombreuses bibliothèques sur le Web qui peuvent vous aider à créer des carrousels de différentes manières. Nous utiliserons la bibliothèque BXSLider open source. La bibliothèque Bxslider prend en charge la conception réactive, de sorte que le carrousel construit avec cette bibliothèque peut être adapté à n'importe quel

Amélioration du balisage structurel avec JavaScript Amélioration du balisage structurel avec JavaScript Mar 10, 2025 am 12:18 AM

Points clés Le marquage structuré amélioré avec JavaScript peut considérablement améliorer l'accessibilité et la maintenabilité du contenu de la page Web tout en réduisant la taille du fichier. JavaScript peut être utilisé efficacement pour ajouter dynamiquement des fonctionnalités aux éléments HTML, tels que l'utilisation de l'attribut CITE pour insérer automatiquement les liens de référence en références de bloc. L'intégration de JavaScript avec des balises structurées vous permet de créer des interfaces utilisateur dynamiques, telles que des panneaux d'onglet qui ne nécessitent pas de rafraîchissement de page. Il est crucial de s'assurer que les améliorations JavaScript ne gênent pas la fonctionnalité de base des pages Web; même si JavaScript est désactivé, la page doit rester fonctionnelle. La technologie avancée JavaScript peut être utilisée (

Comment télécharger et télécharger des fichiers CSV avec Angular Comment télécharger et télécharger des fichiers CSV avec Angular Mar 10, 2025 am 01:01 AM

Les ensembles de données sont extrêmement essentiels pour créer des modèles d'API et divers processus métier. C'est pourquoi l'importation et l'exportation de CSV sont une fonctionnalité souvent nécessaire. Dans ce tutoriel, vous apprendrez à télécharger et à importer un fichier CSV dans un

See all articles