Skizze eines Browserfensters: Ein Textblock wird von einem gestrichelten Rechteck umschlossen. Pfeile zeigen die Abstände top und left zur linken oberen Fensterecke sowie die Maße width und height des Rechtecks.

getBoundingClientRect

getBoundingClientRect ist ein Befehl in der Programmiersprache JavaScript, der die Größe und die Position eines Elements auf einer Webseite ausliest. Er liefert Zahlen wie Breite, Höhe und den Abstand zum oberen Rand des sichtbaren Fensters.

Jede Webseite besteht aus Bausteinen: Überschriften, Bilder, Buttons, Textblöcke. Wo genau ein solcher Baustein gerade auf dem Bildschirm liegt, weiß der Browser — also das Programm, mit dem du im Internet surfst. getBoundingClientRect ist ein Befehl, mit dem ein Programm diese Information beim Browser abfragen kann. Der Befehl gehört zu JavaScript, der Sprache, in der interaktive Teile von Webseiten geschrieben werden. Als Antwort kommt ein kleines Datenpaket mit sechs Zahlen zurück: Breite, Höhe und die Abstände nach oben, unten, links und rechts. Wichtig ist dabei, dass sich diese Abstände auf das sichtbare Fenster beziehen, nicht auf die gesamte Seite.

Warum Layout-Werte nicht einfach im Code stehen

Man könnte meinen, die Position eines Elements sei ohnehin bekannt. Schließlich hat ja jemand die Seite gestaltet. In der Praxis stimmt das nicht. Die tatsächliche Position hängt von der Fenstergröße ab, von der Schriftgröße, von geladenen Bildern und davon, wie weit der Nutzer gescrollt hat.

Ein Beispiel: Ein Tooltip soll direkt unter einem Button erscheinen. Auf einem breiten Monitor sitzt dieser Button vielleicht bei 900 Pixeln von links, auf dem Handy bei 40 Pixeln. Nur der Browser kennt den echten Wert im Moment des Klicks. getBoundingClientRect ist die Standardmethode, um genau diesen Wert zu erfahren.

Für Entwickler ist der Befehl deshalb eines der meistgenutzten Werkzeuge überhaupt. Ohne ihn gäbe es keine Menüs, die sich am Rand automatisch umklappen, keine Elemente, die beim Scrollen einrasten, und keine Drag-and-drop-Funktionen, bei denen man Objekte mit der Maus verschiebt.

Was die sechs Zahlen bedeuten

Der Befehl liefert ein Rechteck, das das Element exakt umschließt. Der englische Name sagt genau das: die begrenzende Box eines Elements im Koordinatensystem des Fensters. Die Werte top und left geben an, wie viele Pixel das Element vom oberen beziehungsweise linken Fensterrand entfernt ist. Dazu kommen bottom, right, width und height.

Der Nullpunkt liegt immer in der linken oberen Ecke des sichtbaren Bereichs. Scrollt man die Seite nach unten, wird der top-Wert eines Elements kleiner. Er kann sogar negativ werden, wenn das Element nach oben aus dem Bild gescrollt ist. Genau daran erkennen Programme, ob etwas gerade sichtbar ist oder nicht.

Ein häufiger Irrtum: Die Werte sind keine feste Eigenschaft des Elements. Sie sind eine Momentaufnahme. Sobald der Nutzer scrollt oder das Fenster verkleinert, sind sie veraltet und müssen neu abgefragt werden. Ein zweiter Punkt ist die Rechenlast. Der Browser muss für die Antwort unter Umständen das gesamte Layout neu durchrechnen. Wer den Befehl hunderte Male pro Sekunde aufruft, bringt die Seite zum Ruckeln.

Vom Cookie-Banner bis zur Web-Automatisierung

Im Alltag begegnet dir das Ergebnis ständig, ohne dass du den Befehl siehst. Ein Cookie-Banner, das sich am unteren Rand festhält, eine Bildergalerie, die beim Hochscrollen sanft einblendet, ein Kalender, der sich nach oben öffnet, wenn unten kein Platz mehr ist — dahinter steckt fast immer eine Positionsabfrage dieser Art.

Interessant wird der Begriff auch im Zusammenhang mit KI. Sogenannte Browser-Agenten sind Programme, die eine Webseite selbstständig bedienen, etwa um ein Formular auszufüllen. Damit ein solches System klicken kann, braucht es Bildschirmkoordinaten. getBoundingClientRect liefert sie präzise, ohne dass die KI raten muss, wo auf dem Screenshot der Button liegt.

Eine verwandte, neuere Technik ist der Intersection Observer. Er meldet automatisch, wenn ein Element in den sichtbaren Bereich rutscht, und ist für diesen Zweck sparsamer. Für einmalige, exakte Messungen bleibt getBoundingClientRect aber die erste Wahl. In Entwicklerforen und Fehlerberichten taucht der Name deshalb regelmäßig auf.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.