Maison interface Web js tutoriel Calculer la position d'un élément dans une page web dans les astuces JavaScript_javascript

Calculer la position d'un élément dans une page web dans les astuces JavaScript_javascript

May 16, 2016 pm 03:56 PM
javascript 位置 计算

En raison des besoins du projet, des captures d'écran des éléments de la page Web sont requises pendant les tests pour garantir qu'elles semblent normales. AvantJ'ai écrit un article présentant une méthode, utilisez d'abord WebDriver pour prendre une capture d'écran en plein écran, puis recadrez la capture d'écran en fonction de l'emplacement de l'élément cible (élément DOM), en conservant l'emplacement dont nous avons besoin.

Ce code fonctionnait bien jusqu'à ce que je trouve quelque chose : iframe. Le contenu d'une iframe (le frame ordinaire est le même, mais le frame est moins courant maintenant, seul l'iframe est utilisé comme exemple ici) est considéré comme une page Web indépendante, et même l'objet Window est séparé de sa page Web parent. La méthode WebElement.getLocation() dans WebDriver ne peut renvoyer que la relation de position entre ce WebElement et la fenêtre dans laquelle il se trouve. Il n'y a aucun problème avec son implémentation, mais la capture d'écran plein écran contient non seulement le contenu de l'iframe, mais peut également inclure le contenu de sa page parent Contenu, vous devez connaître la position de l'élément cible dans la capture d'écran lors du recadrage. La question est donc de savoir quelle entreprise possède la meilleure technologie d’excavatrice ? Comment calculer la position d'un élément par rapport à la capture d'écran ?

Ce problème doit être abordé dans une catégorie distincte. La raison est la suivante : le comportement des captures d'écran dans Chrome et Firefox est différent. La capture d'écran de Chrome correspond au contenu de la page Web (fenêtre d'affichage) actuellement visible. Par exemple, lorsque la taille réelle de la page Web dépasse la taille de la fenêtre Chrome, le contenu affiché dans la fenêtre est différent en fonction de la position de la barre de défilement. le contenu affiché. Nous devons donc calculer la position de l'élément cible par rapport au contenu actuellement visible. Firefox utilise une méthode capable de capturer le contenu de l'intégralité de la page Web, quelle que soit la taille actuelle de la fenêtre. Donc pour Firefox nous devons calculer la position absolue de l'élément (Absolute Position).

Pour obtenir la position d'un élément, vous devez utiliser une méthode : Element.getBoundingClientRect(). Cette méthode renvoie la position de cet élément par rapport au contenu actuellement visible de la fenêtre dans laquelle il se trouve, représenté par quatre valeurs : haut, gauche, droite et bas. Nous ne nous soucions que du haut et de la gauche. Quant à la taille de découpage, nous pouvons l'obtenir à partir de la longueur et de la largeur de l'élément lui-même, sans calcul. Pour calculer la position de l'élément cible par rapport à la fenêtre de niveau supérieur, il suffit d'ajouter successivement le haut et la gauche de sa fenêtre parent. Le code est le suivant :

function calcViewportLocation(element) {
 var currentWindow = window;
 var rect = element.getBoundingClientRect(); // 元素的位置
 var top = rect.top;
 var left = rect.left;
 while (currentWindow.frameElement != null) { // 处理父级 Window
  element = currentWindow.frameElement;
  currentWindow = currentWindow.parent;
  rect = element.getBoundingClientRect();
  if (rect.top > 0) { top += rect.top; }
  if (rect.left > 0) { left += rect.left; }
 }
 return [Math.round(top), Math.round(left)];
}

Copier après la connexion

Le code ci-dessus fonctionne pour Chrome, mais dans Firefox, nous devons également calculer la position absolue de l'élément. Window.pageXOffset est nécessaire ici. pageXOffset, ou scrollX, représente la position de défilement de la barre de défilement horizontale de la fenêtre actuelle. Ajoutez cette valeur en haut à gauche pour obtenir la position horizontale absolue de l'élément cible. Bien entendu, l'iframe peut également être traitée spécialement :

function calcAbsolutLocation(element) {
 var top = 0;
 var left = 0;
 var currentWindow = window;
 while (element != null) {
  rect = element.getBoundingClientRect();
  var pageYOffset = currentWindow.pageYOffset;
  var pageXOffset = currentWindow.pageXOffset;
  if (typeof pageYOffset === 'undefined') { // IE8
   currentDocument = currentWindow.document;
   var bodyElement = (currentDocument.documentElement
     || currentDocument.body.parentNode || currentDocument.body);
   pageYOffset = bodyElement.scrollTop;
   pageXOffset = bodyElement.scrollLeft;
  }
  top += rect.top + pageYOffset;
  left += rect.left + pageXOffset;
  element = currentWindow.frameElement;
  currentWindow = currentWindow.parent;
  if (element != null) {
   style = window.getComputedStyle(element);
   top += parseInt(style.borderTopWidth, 10);
   left += parseInt(style.borderLeftWidth, 10);
  }
 }
 return [Math.round(top), Math.round(left)];
}
Copier après la connexion


Étant donné qu'IE8 ne prend pas en charge pageXOffset et scrollX, un traitement spécial est requis dans IE8, c'est-à-dire la partie marquée "IE8" dans le code. En remplaçant ces deux morceaux de code Javascript par WebElement.getLocation() dans l'article précédent, vous pouvez prendre une capture d'écran d'un élément spécifique dans une iframe.

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Détails sur la façon d'activer les paramètres des variables d'environnement sur Windows 11 Détails sur la façon d'activer les paramètres des variables d'environnement sur Windows 11 Dec 30, 2023 pm 06:07 PM

La fonction de variable d'environnement est un outil essentiel pour exécuter le programme de configuration dans le système, mais dans le dernier système win11, de nombreux utilisateurs ne savent toujours pas comment la configurer. Voici une introduction détaillée à l'emplacement de la variable d'environnement. Ouverture de variable d'environnement win11. Venez nous rejoindre. Apprenez à l'exploiter. Où se trouvent les variables d'environnement win11 : 1. Entrez d'abord "win+R" pour ouvrir la boîte d'exécution. 2. Entrez ensuite la commande : controlsystem. 3. Dans l'interface d'informations système qui s'ouvre, sélectionnez « Paramètres système avancés » dans le menu de gauche. 4. Sélectionnez ensuite l'option "Variables d'environnement" en bas de la fenêtre "Propriétés système" qui s'ouvre. 5. Enfin, dans les variables d'environnement ouvertes, vous pouvez effectuer les réglages pertinents en fonction de vos besoins.

Chemin de démarrage Win11 et comment l'ouvrir Chemin de démarrage Win11 et comment l'ouvrir Jan 03, 2024 pm 11:13 PM

Chaque système Windows possède un chemin de démarrage si vous y ajoutez des fichiers ou des logiciels, il sera ouvert au démarrage. Cependant, de nombreux amis ne savent pas où se trouve le chemin de démarrage de Win11. En fait, il suffit de saisir le dossier correspondant sur le lecteur C. Chemin de démarrage Win11 : 1. Double-cliquez pour ouvrir « Ce PC » 2. Collez directement le chemin « C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup » dans la zone du chemin. 3. Voici le chemin de démarrage de Win11. Si nous voulons ouvrir le fichier après le démarrage, nous pouvons y insérer le fichier. 4. Si vous ne pouvez pas entrer par ce chemin, il se peut qu'il soit masqué.

La multiplication matricielle universelle de CUDA : de l'entrée à la maîtrise ! La multiplication matricielle universelle de CUDA : de l'entrée à la maîtrise ! Mar 25, 2024 pm 12:30 PM

La multiplication matricielle générale (GEMM) est un élément essentiel de nombreuses applications et algorithmes, et constitue également l'un des indicateurs importants pour évaluer les performances du matériel informatique. Une recherche approfondie et l'optimisation de la mise en œuvre de GEMM peuvent nous aider à mieux comprendre le calcul haute performance et la relation entre les systèmes logiciels et matériels. En informatique, une optimisation efficace de GEMM peut augmenter la vitesse de calcul et économiser des ressources, ce qui est crucial pour améliorer les performances globales d’un système informatique. Une compréhension approfondie du principe de fonctionnement et de la méthode d'optimisation de GEMM nous aidera à mieux utiliser le potentiel du matériel informatique moderne et à fournir des solutions plus efficaces pour diverses tâches informatiques complexes. En optimisant les performances de GEMM

Comment calculer l'addition, la soustraction, la multiplication et la division dans un document Word Comment calculer l'addition, la soustraction, la multiplication et la division dans un document Word Mar 19, 2024 pm 08:13 PM

WORD est un traitement de texte puissant. Nous pouvons utiliser Word pour éditer divers textes. Dans les tableaux Excel, nous maîtrisons les méthodes de calcul d'addition, de soustraction et de multiplicateurs. Ainsi, si nous avons besoin de calculer l'addition de valeurs numériques dans les tableaux Word, Comment soustraire le multiplicateur ? Puis-je utiliser uniquement une calculatrice pour le calculer ? La réponse est bien sûr non, WORD peut aussi le faire. Aujourd'hui, je vais vous apprendre à utiliser des formules pour calculer des opérations de base telles que l'addition, la soustraction, la multiplication et la division dans des tableaux dans des documents Word. Apprenons ensemble. Alors, aujourd'hui, permettez-moi de vous montrer en détail comment calculer l'addition, la soustraction, la multiplication et la division dans un document WORD ? Étape 1 : ouvrez un WORD, cliquez sur [Tableau] sous [Insérer] dans la barre d'outils et insérez un tableau dans le menu déroulant.

Emplacement de l'Origami Bird au Stardome Railway Crocker Film and Television Park Emplacement de l'Origami Bird au Stardome Railway Crocker Film and Television Park Mar 27, 2024 pm 11:51 PM

Il y a un total de 20 oiseaux en origami dans le Stardome Railway Croaker Movie Park. De nombreux joueurs ne savent pas où se trouvent les oiseaux en origami dans Crocker Movie Park. L'éditeur a résumé les emplacements de chaque oiseau en origami pour aider tout le monde à le rechercher. et jetez un œil à ce dernier résumé des emplacements des oiseaux en origami dans le Croaker Film and Television Park pour un contenu spécifique. Guide du Honky Dome Railway Star Dome Railway Crocker Film Park Origami Bird Emplacement 1, Crocker Film Park 1er étage 2, Crocker Film Park 2e étage

Comprendre l'emplacement et la structure du stockage du package d'installation pip Comprendre l'emplacement et la structure du stockage du package d'installation pip Jan 18, 2024 am 08:23 AM

Pour en savoir plus sur l'emplacement de stockage des packages installés par pip, vous avez besoin d'exemples de code spécifiques. Pip est un outil de gestion de packages couramment utilisé dans le langage Python. Il est utilisé pour installer, mettre à niveau et gérer facilement les packages Python. Lorsque vous utilisez pip pour installer un package, il téléchargera automatiquement le fichier de package correspondant à partir de PyPI (Python Package Index) et l'installera à l'emplacement spécifié. Alors, où sont stockés les packages installés par pip ? C'est un problème que de nombreux développeurs Python rencontreront. Cet article approfondira l'emplacement des packages installés par pip et fournira

emplacement d'arrêt de win11 emplacement d'arrêt de win11 Jan 10, 2024 am 09:14 AM

Si nous allons être absents de l'ordinateur pendant une longue période, il est préférable d'éteindre l'ordinateur pour le protéger. Alors, où est l'arrêt dans Win11 ? En fait, d'une manière générale, ouvrez simplement le menu Démarrer et vous pourrez trouver. le bouton d'arrêt dedans. Où arrêter Windows 11 : Réponse : Dans le bouton d'alimentation du menu Démarrer. 1. Tout d'abord, nous cliquons sur le « Logo Windows » dans la barre des tâches inférieure pour ouvrir le « Menu Démarrer ». 2. Après ouverture, vous pouvez trouver le bouton « Alimentation » dans le coin inférieur droit, comme indiqué sur la figure. 3. Après avoir cliqué sur le bouton d'alimentation, vous verrez « Arrêter », cliquez dessus pour arrêter. 4. Si l'ordinateur ne peut pas être arrêté en raison de circonstances particulières telles qu'un crash, vous pouvez directement appuyer et maintenir enfoncé le « bouton d'alimentation » de l'ordinateur pour forcer l'arrêt.

Où est publié Kuaishou et comment changer son emplacement ? Comment ajouter un emplacement à une vidéo qui a été mise en ligne ? Où est publié Kuaishou et comment changer son emplacement ? Comment ajouter un emplacement à une vidéo qui a été mise en ligne ? Mar 21, 2024 pm 06:00 PM

En tant que plateforme de vidéos courtes bien connue en Chine, Kuaishou offre à de nombreux créateurs la possibilité de présenter leurs talents et de partager leur vie. Lors du téléchargement d'une vidéo, certains créateurs novices peuvent ne pas savoir comment modifier l'emplacement de publication de la vidéo. Cet article vous expliquera comment modifier l'emplacement de publication des vidéos Kuaishou et partagera quelques conseils pour la publication de vidéos Kuaishou afin de vous aider à mieux utiliser cette plateforme pour présenter vos œuvres. 1. Où est publié Kuaishou et comment changer son emplacement ? 1. Interface de publication : dans l'application Kuaishou, cliquez sur le bouton « Publier » pour accéder à l'interface de publication vidéo. 2. Informations d'emplacement : dans l'interface de publication, il y a une colonne « Emplacement » Cliquez pour accéder à l'interface de sélection d'emplacement. 3. Changer d'emplacement : dans l'interface de sélection d'emplacement, cliquez sur le bouton « Emplacement » pour afficher l'emplacement actuel. Si vous souhaitez modifier l'emplacement, cliquez sur "Emplacement"

See all articles