Heim Web-Frontend js-Tutorial Berechnen Sie die Position eines Elements auf einer Webseite in JavaScript_Javascript-Tipps

Berechnen Sie die Position eines Elements auf einer Webseite in JavaScript_Javascript-Tipps

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

Aufgrund der Anforderungen des Projekts sind beim Testen Screenshots von Webseitenelementen erforderlich, um sicherzustellen, dass sie normal aussehen. BevorIch habe einen Artikel geschrieben, in dem eine Methode vorgestellt wird, verwenden Sie zunächst WebDriver, um einen Vollbild-Screenshot zu erstellen, und schneiden Sie dann den Screenshot entsprechend der Position des Zielelements (DOM-Element) zu, wobei wir den benötigten Standort beibehalten.

Dieser Code hat gut funktioniert, bis ich etwas herausgefunden habe: iframe. Der Inhalt eines Iframes (normaler Frame ist derselbe, aber Frame ist jetzt weniger verbreitet, hier wird nur Iframe als Beispiel verwendet) wird als unabhängige Webseite betrachtet, und sogar das Window-Objekt ist von seiner übergeordneten Webseite getrennt. Die WebElement.getLocation()-Methode in WebDriver kann nur die Positionsbeziehung zwischen diesem WebElement und dem Fenster zurückgeben, in dem es sich befindet. Es gibt kein Problem mit der Implementierung, aber der Vollbild-Screenshot enthält nicht nur den Inhalt des Iframes, sondern auch kann auch den Inhalt der übergeordneten Seite enthalten. Beim Zuschneiden müssen Sie die Position des Zielelements im Screenshot kennen. Die Frage ist also: Welches Unternehmen verfügt über die beste Baggertechnologie? Wie berechnet man die Position eines Elements relativ zum Screenshot?

Dieses Problem muss in einer separaten Kategorie behandelt werden. Der Grund dafür ist: Das Verhalten von Screenshots in Chrome und Firefox ist unterschiedlich. Der Screenshot von Chrome ist der aktuell sichtbare (Ansichtsfenster) Inhalt der Webseite. Wenn die tatsächliche Größe der Webseite beispielsweise die Größe des Chrome-Fensters überschreitet, unterscheidet sich der im Fenster angezeigte Inhalt je nach Position der Bildlaufleiste den angezeigten Inhalt. Wir müssen also die Position des Zielelements relativ zum aktuell sichtbaren Inhalt berechnen. Firefox verwendet eine Methode, die den Inhalt der gesamten Webseite erfassen kann, unabhängig von der aktuellen Fenstergröße. Für Firefox müssen wir also die absolute Position des Elements berechnen (Absolute Position).

Um die Position eines Elements zu ermitteln, müssen Sie eine Methode verwenden: Element.getBoundingClientRect(). Diese Methode gibt die Position dieses Elements relativ zum aktuell sichtbaren Inhalt des Fensters zurück, in dem es sich befindet, dargestellt durch vier Werte: oben, links, rechts und unten. Wir kümmern uns nur um oben und links. Die Ausschnittsgröße können wir ohne Berechnung aus der Länge und Breite des Elements selbst ermitteln. Um die Position des Zielelements relativ zum Fenster der obersten Ebene zu berechnen, müssen wir nur den oberen und linken Teil des übergeordneten Fensters der Reihe nach hinzufügen. Der Code lautet wie folgt:

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)];
}

Nach dem Login kopieren

Der obige Code funktioniert für Chrome, aber in Firefox müssen wir auch die absolute Position des Elements berechnen. Hier wird Window.pageXOffset benötigt. pageXOffset oder scrollX stellt die Bildlaufposition der horizontalen Bildlaufleiste des aktuellen Fensters dar. Fügen Sie diesen Wert oben links hinzu, um die horizontale absolute Position des Zielelements zu erhalten. Natürlich kann iframe auch speziell behandelt werden:

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)];
}
Nach dem Login kopieren


Da IE8 pageXOffset und scrollX nicht unterstützt, ist in IE8 eine spezielle Verarbeitung erforderlich, nämlich der im Code mit „IE8“ gekennzeichnete Teil. Indem Sie diese beiden Teile des Javascript-Codes im vorherigen Artikel durch WebElement.getLocation() ersetzen, können Sie einen Screenshot eines bestimmten Elements in einem Iframe erstellen.

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)

Details zum Aktivieren der Umgebungsvariableneinstellungen unter Windows 11 Details zum Aktivieren der Umgebungsvariableneinstellungen unter Windows 11 Dec 30, 2023 pm 06:07 PM

Die Umgebungsvariablenfunktion ist ein wesentliches Werkzeug zum Ausführen des Konfigurationsprogramms im System, aber im neuesten Win11-System wissen immer noch viele Benutzer nicht, wie sie eingerichtet werden sollen. Hier finden Sie eine detaillierte Einführung in den Speicherort Öffnen Sie die Umgebungsvariable win11 und lernen Sie, wie man sie bedient. Wo sind die Win11-Umgebungsvariablen: 1. Geben Sie zunächst „win+R“ ein, um das Ausführungsfeld zu öffnen. 2. Geben Sie dann den Befehl ein: controlsystem. 3. Wählen Sie in der sich öffnenden Systeminformationsoberfläche im linken Menü „Erweiterte Systemeinstellungen“ aus. 4. Wählen Sie dann unten im sich öffnenden Fenster „Systemeigenschaften“ die Option „Umgebungsvariablen“. 5. Abschließend können Sie in den geöffneten Umgebungsvariablen relevante Einstellungen entsprechend Ihren Bedürfnissen vornehmen.

Win11-Startpfad und wie man ihn öffnet Win11-Startpfad und wie man ihn öffnet Jan 03, 2024 pm 11:13 PM

Jedes Windows-System verfügt über einen Startpfad. Wenn Sie ihm Dateien oder Software hinzufügen, wird dieser beim Booten geöffnet. Viele Freunde wissen jedoch nicht, wo sich der Win11-Startpfad befindet. Tatsächlich müssen wir nur den entsprechenden Ordner auf dem Laufwerk C eingeben. Win11-Startpfad: 1. Doppelklicken Sie, um „Dieser PC“ zu öffnen. 2. Fügen Sie den Pfad „C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup“ direkt in das Pfadfeld ein. 3. Hier ist der Win11-Startpfad. Wenn wir die Datei nach dem Booten öffnen möchten, können wir die Datei einfügen. 4. Wenn Sie über diesen Pfad nicht zugreifen können, ist er möglicherweise ausgeblendet.

CUDAs universelle Matrixmultiplikation: vom Einstieg bis zur Kompetenz! CUDAs universelle Matrixmultiplikation: vom Einstieg bis zur Kompetenz! Mar 25, 2024 pm 12:30 PM

Die allgemeine Matrixmultiplikation (GEMM) ist ein wesentlicher Bestandteil vieler Anwendungen und Algorithmen und außerdem einer der wichtigen Indikatoren zur Bewertung der Leistung der Computerhardware. Eingehende Forschung und Optimierung der Implementierung von GEMM können uns helfen, Hochleistungsrechnen und die Beziehung zwischen Software- und Hardwaresystemen besser zu verstehen. In der Informatik kann eine effektive Optimierung von GEMM die Rechengeschwindigkeit erhöhen und Ressourcen einsparen, was für die Verbesserung der Gesamtleistung eines Computersystems von entscheidender Bedeutung ist. Ein tiefgreifendes Verständnis des Funktionsprinzips und der Optimierungsmethode von GEMM wird uns helfen, das Potenzial moderner Computerhardware besser zu nutzen und effizientere Lösungen für verschiedene komplexe Computeraufgaben bereitzustellen. Durch Optimierung der Leistung von GEMM

So berechnen Sie Addition, Subtraktion, Multiplikation und Division in einem Word-Dokument So berechnen Sie Addition, Subtraktion, Multiplikation und Division in einem Word-Dokument Mar 19, 2024 pm 08:13 PM

WORD ist ein leistungsstarkes Textverarbeitungsprogramm, mit dem wir verschiedene Texte in Excel bearbeiten können. Wir beherrschen die Berechnungsmethoden der Addition, Subtraktion und Multiplikatoren. Wie subtrahiere ich den Multiplikator? Kann ich ihn nur mit einem Taschenrechner berechnen? Die Antwort ist natürlich nein, WORD kann das auch. Heute werde ich Ihnen beibringen, wie Sie mit Formeln grundlegende Operationen wie Addition, Subtraktion, Multiplikation und Division in Tabellen in Word-Dokumenten berechnen. Lassen Sie mich heute im Detail zeigen, wie man Addition, Subtraktion, Multiplikation und Division in einem WORD-Dokument berechnet. Schritt 1: Öffnen Sie ein WORD, klicken Sie in der Symbolleiste unter [Einfügen] auf [Tabelle] und fügen Sie eine Tabelle in das Dropdown-Menü ein.

Standort des Origami-Vogels im Stardome Railway Crocker Film and Television Park Standort des Origami-Vogels im Stardome Railway Crocker Film and Television Park Mar 27, 2024 pm 11:51 PM

Es gibt insgesamt 20 Origami-Vögel im Stardome Railway Croaker Movie Park. Viele Spieler wissen nicht, wo sich die Origami-Vögel im Crocker Movie Park befinden, um allen die Suche zu erleichtern. und schauen Sie sich diese neueste Zusammenfassung der Standorte der Origami-Vögel im Croaker Film and Television Park an, um spezifische Inhalte zu erhalten. Leitfaden zur Honky Dome Railway Star Dome Railway Crocker Film Park Origami Bird Location 1, Crocker Film Park 1. Etage 2, Crocker Film Park 2. Etage

Verstehen Sie den Speicherort und die Struktur des Pip-Installationspaketspeichers Verstehen Sie den Speicherort und die Struktur des Pip-Installationspaketspeichers Jan 18, 2024 am 08:23 AM

Um mehr über den Speicherort der von pip installierten Pakete zu erfahren, benötigen Sie spezifische Codebeispiele. Pip ist ein häufig verwendetes Paketverwaltungstool in der Python-Sprache. Es wird zum einfachen Installieren, Aktualisieren und Verwalten von Python-Paketen verwendet. Wenn Sie pip zum Installieren eines Pakets verwenden, lädt es automatisch die entsprechende Paketdatei von PyPI (Python Package Index) herunter und installiert sie am angegebenen Speicherort. Wo werden also die von pip installierten Pakete gespeichert? Dies ist ein Problem, auf das viele Python-Entwickler stoßen werden. Dieser Artikel befasst sich mit dem Speicherort der von pip und Provide installierten Pakete

Win11-Shutdown-Standort Win11-Shutdown-Standort Jan 10, 2024 am 09:14 AM

Wenn wir längere Zeit nicht am Computer sind, ist es am besten, den Computer herunterzufahren, um ihn zu schützen. Wo ist also das Herunterfahren in Win11? Öffnen Sie im Allgemeinen einfach das Startmenü und Sie können es finden die Abschalttaste darin. Wo man Windows 11 herunterfährt: Antwort: Im Power-Button des Startmenüs. 1. Zuerst klicken wir auf das „Windows-Logo“ in der unteren Taskleiste, um das „Startmenü“ zu öffnen. 2. Nach dem Öffnen finden Sie in der unteren rechten Ecke den „Power“-Button, wie in der Abbildung dargestellt. 3. Nachdem Sie auf den Netzschalter geklickt haben, wird „Herunterfahren“ angezeigt. Klicken Sie darauf, um das Gerät herunterzufahren. 4. Wenn der Computer aufgrund besonderer Umstände, z. B. eines Absturzes, nicht heruntergefahren werden kann, können Sie direkt den „Einschaltknopf“ am Computer gedrückt halten, um ein Herunterfahren zu erzwingen.

Wo wird Kuaishou veröffentlicht und wie kann der Standort geändert werden? Wie füge ich einem hochgeladenen Video einen Standort hinzu? Wo wird Kuaishou veröffentlicht und wie kann der Standort geändert werden? Wie füge ich einem hochgeladenen Video einen Standort hinzu? Mar 21, 2024 pm 06:00 PM

Als bekannte Kurzvideoplattform in China bietet Kuaishou vielen YouTubern die Möglichkeit, ihre Talente zu präsentieren und ihr Leben zu teilen. Beim Hochladen eines Videos sind einige unerfahrene Ersteller möglicherweise verwirrt darüber, wie sie den Ort für die Veröffentlichung des Videos ändern können. In diesem Artikel erfahren Sie, wie Sie den Veröffentlichungsort von Kuaishou-Videos ändern, und geben einige Tipps für die Veröffentlichung von Kuaishou-Videos, damit Sie diese Plattform besser nutzen können, um Ihre Arbeit zu präsentieren. 1. Wo wird Kuaishou veröffentlicht und wie kann der Standort geändert werden? 1. Veröffentlichungsoberfläche: Klicken Sie in der Kuaishou-App auf die Schaltfläche „Veröffentlichen“, um die Video-Veröffentlichungsoberfläche aufzurufen. 2. Standortinformationen: In der Veröffentlichungsoberfläche gibt es eine Spalte „Standort“. Klicken Sie hier, um die Standortauswahloberfläche aufzurufen. 3. Standort ändern: Klicken Sie in der Standortauswahloberfläche auf die Schaltfläche „Standort“, um den aktuellen Standort anzuzeigen. Wenn Sie den Standort ändern möchten, klicken Sie auf „Standort“.

See all articles