


Quelques applications avancées du glisser-déposer Javascript (analyse du code ligne par ligne, permettant de comprendre facilement les principes du glisser-déposer)_Compétences Javascript
Voyons quels problèmes surviendront lorsqu'il y aura des choses autour du drag précédent ? Il n'y aura aucun problème dans les navigateurs avancés. Testons-le sous IE7 et le problème apparaîtra. Comme le montre l'image
On voit bien que le texte a été sélectionné. Ensuite, cette expérience utilisateur est très mauvaise et peu pratique à utiliser. À propos, nous avons déjà ajouté un return false ; ce qui nous a aidé à résoudre de nombreux problèmes. Si nous le supprimons, le même problème se produira dans Chrome. Cela signifie donc que ce retour est faux ; peut résoudre le problème des navigateurs tels que Chrome ff IE9.
En fait, dans notre développement, il y aura de nombreux éléments sur la page. Il ne peut pas s'agir d'un seul div, d'autres endroits ne seront pas sélectionnés, comme Baidu Map.
Alors, comment pouvons-nous obtenir une telle traînée ? Cela peut-il résoudre le problème d’IE7 ?
Solution :
Nous pouvons utiliser une petite astuce pour le résoudre. Cette astuce n'est prise en charge que dans IE6-8 et peut réellement résoudre notre problème, car d'autres navigateurs utilisent return false ; Voyons quelles sont les techniques
C'est la capture d'événement ! ! Une brève explication et le code ci-joint
<title></title> <script type="text/javascript"> window.onload=function(){ var oBtn=document.getElementById("btn"); oBtn.onclick=function(){ alert(1); }; // 网页上所有地方的上的事件都集中到一个按钮身上 IE 专用 oBtn.setCapture(); // 点击哪里都是弹a } </script> </head> <body> <input type="button" id="btn" value="按钮" /> </body>
En fait, les événements de tous les endroits de la page sont concentrés en un seul point. En cliquant n'importe où sur la page, un pop-up apparaîtra, ce qui est la fonction de setCapture().
Concentrez tous les événements sur un seul bouton à gérer ! ! Ceci n'est compatible qu'avec IE ! !
Sur ce, laissez-moi voir comment modifier le code précédent. . . .
Nous remplaçons d'abord tous les documents en divs. Rappelez-vous ce que nous avons dit auparavant, à savoir qu'il est plus facile de faire glisser les divs car la souris glisse plus rapidement, nous ajoutons donc des événements aux documents.
Pas besoin de faire ça maintenant, ajoutez un setCapture() à notre div précédent pour voir l'effet.
<body> IE 7 中的文字会被选中 , <br />如果不加return false chrome ff 也会有这样的问题 asdsadad <br /> <div id="div1"> asdsadad asdsadad asdsadad </div> asdsadadasdsadadasdsadad </body>
<style type="text/css"> #div1 { width: 200px; height: 200px; background: red; position: absolute; } </style>
<script type="text/javascript"> // 拖拽空div 低版本的火狐有bug window.onload = function() { var oDiv = document.getElementById("div1"); var disX = 0; var disY = 0; oDiv.onmousedown = function(ev) { var oEvent = ev || event; disX = oEvent.clientX - oDiv.offsetLeft; disY = oEvent.clientY - oDiv.offsetTop; oDiv.onmousemove = function(ev) { var oEvent = ev || event; var oDivLeft = oEvent.clientX - disX; var oDivTop = oEvent.clientY - disY; oDiv.style.left = oDivLeft + 'px'; oDiv.style.top = oDivTop + 'px'; }; oDiv.onmouseup = function() { oDiv.onmousemove = null; oDiv.onmouseup = null; }; oDiv.setCapture(); return false; // 阻止默认事件,解决火狐的bug }; }; </script>
À l’heure actuelle, nous n’avons pas de problème de faire glisser la Div avec la souris lorsque nous la faisons glisser. En fait, après avoir ajouté setCapture(), tous les événements de la page Web entière seront rassemblés sur ce div.
En fait, désormais, ce texte ne sera pas sélectionné. Pourquoi? Parce que tous les événements de texte et d'images sur la page web sont désormais sur le div, ils ne peuvent plus récupérer les événements ! Ils ne seront donc naturellement pas sélectionnés.
Bien sûr, il y a une autre question maintenant ? ? ? ? Vous constaterez que lorsque vous essayez de sélectionner ces mots, vous ne pouvez pas les sélectionner.
Que faire, les événements se concentrent sur la div. . . !!!!
Donc, en fait, ce setCapture() est comme un verrou. Maintenant, il est verrouillé. Les événements sont tous sur le div. Vous pouvez maintenant le déverrouiller.
releaseCapture(); consiste à libérer la capture. En fait, ajoutez-le simplement lorsque la souris est levée.
window.onload = function() { var oDiv = document.getElementById("div1"); var disX = 0; var disY = 0; oDiv.onmousedown = function(ev) { var oEvent = ev || event; disX = oEvent.clientX - oDiv.offsetLeft; disY = oEvent.clientY - oDiv.offsetTop; oDiv.onmousemove = function(ev) { var oEvent = ev || event; var oDivLeft = oEvent.clientX - disX; var oDivTop = oEvent.clientY - disY; oDiv.style.left = oDivLeft + 'px'; oDiv.style.top = oDivTop + 'px'; }; oDiv.onmouseup = function() { oDiv.onmousemove = null; oDiv.onmouseup = null; oDiv.releaseCapture(); }; oDiv.setCapture(); return false; // 阻止默认事件,解决火狐的bug }; };
C'est très simple. Il suffit de fusionner le code cette fois et la dernière fois, c'est compatible. Enfin, le code compilé est joint
<script type="text/javascript"> window.onload = function() { var oDiv = document.getElementById("div1"); var disX = 0; var disY = 0; oDiv.onmousedown = function(ev) { var oEvent = ev || event; disX = oEvent.clientX - oDiv.offsetLeft; disY = oEvent.clientY - oDiv.offsetTop; if (oDiv.setCapture) { oDiv.onmousemove = mouseMove; oDiv.onmouseup = mouseUp; oDiv.setCapture(); // IE 7 下文字就不会被选中 其实就是文字或图片得不到事件 } else { document.onmousemove = mouseMove; document.onmouseup = mouseUp; } function mouseMove(ev) { var oEvent = ev || event; var oDivLeft = oEvent.clientX - disX; var oDivTop = oEvent.clientY - disY; oDiv.style.left = oDivLeft + 'px'; oDiv.style.top = oDivTop + 'px'; } function mouseUp(ev) { this.onmousemove = null; this.onmouseup = null; if (oDiv.releaseCapture) { oDiv.releaseCapture(); // 释放捕获 } } return false; // 阻止默认事件,解决火狐的bug }; }; </script>

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

Tirez parti de jQuery pour les dispositions de page Web sans effort: 8 plugins essentiels JQuery simplifie considérablement la mise en page de la page Web. Cet article met en évidence huit puissants plugins jQuery qui rationalisent le processus, particulièrement utile pour la création de sites Web manuels

Vous voici donc, prêt à tout savoir sur cette chose appelée Ajax. Mais qu'est-ce que c'est exactement? Le terme Ajax fait référence à un regroupement lâche de technologies utilisées pour créer un contenu Web interactif dynamique. Le terme Ajax, inventé à l'origine par Jesse J

10 plugins de jeu JQuery amusants pour rendre votre site Web plus attrayant et améliorer l'adhérence des utilisateurs! Bien que Flash soit toujours le meilleur logiciel pour développer des jeux Web occasionnels, JQuery peut également créer des effets surprenants, et bien qu'il ne soit pas comparable aux jeux Flash Pure Action, dans certains cas, vous pouvez également vous amuser inattendu dans votre navigateur. jeu jquery tic toe Le "Hello World" de la programmation de jeux a désormais une version jQuery. Code source JQUERY Crazy Word Composition Game Il s'agit d'un jeu de remplissage, et il peut produire des résultats étranges en raison de ne pas connaître le contexte du mot. Code source Jeu de balayage de la mine jQuery

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.

Ce tutoriel montre comment créer un effet de fond de parallaxe captivant à l'aide de jQuery. Nous allons construire une bannière d'en-tête avec des images en couches qui créent une profondeur visuelle étonnante. Le plugin mis à jour fonctionne avec jQuery 1.6.4 et plus tard. Télécharger le

Ce didacticiel montre la création de boîtes de page dynamiques chargées via AJAX, permettant un actualisation instantanée sans rechargement de page pleine. Il exploite JQuery et JavaScript. Considérez-le comme un chargeur de boîtes de contenu de style Facebook personnalisé. Concepts clés: Ajax et jQuery

Cette bibliothèque JavaScript exploite la propriété Window.Name pour gérer les données de session sans compter sur les cookies. Il offre une solution robuste pour stocker et récupérer des variables de session à travers les navigateurs. La bibliothèque fournit trois méthodes de base: Session
