Dieses Mal erkläre ich Ihnen, wie Sie getBoundingClientRect und die Kompatibilitätsverarbeitung verwenden. Was sind die Vorsichtsmaßnahmen zur Verwendung von getBoundingClientRect und der Kompatibilitätsverarbeitung?
Die Rolle von getBoundingClientRect
getBoundingClientRect wird verwendet, um den Positionssatz eines bestimmten HTML-Elements relativ zum Ansichtsfenster abzurufen.
Wenn Sie object.getBoundingClientRect(); ausführen, werden die Attribute oben, rechts, unten, links, Breite und Höhe des Elements in Form eines Objekts zurückgegeben.
getBoundingClientRect()
Diese Methode gibt ein Rechteckobjekt zurück, das vier Eigenschaften enthält: links, oben, rechts und unten. Stellt den Abstand zwischen jeder Seite des Elements und der oberen bzw. linken Seite der Seite dar.
var box=document.getElementById('box'); // 获取元素 alert(box.getBoundingClientRect().top); // 元素上边距离页面上边的距离 alert(box.getBoundingClientRect().right); // 元素右边距离页面左边的距离 alert(box.getBoundingClientRect().bottom); // 元素下边距离页面上边的距离 alert(box.getBoundingClientRect().left); // 元素左边距离页面左边的距离
Browserkompatibilität
Es kann von ie5 und höher unterstützt werden, aber es gibt ein paar Dinge, die korrigiert werden müssen,
Der linke und der obere Rand des IE67 sind 2 Pixel kleiner und es gibt keine Breiten- oder Höhenattribute.
Verwenden Sie getBoundingClientRect, um eine Methode zu schreiben, um den Positionssatz von HTML-Elementen relativ zum Fenster zu erhalten
<p id="test" style="width: 100px; height: 100px; background: #ddd;"></p> <script> function getObjXy(obj){ var xy = obj.getBoundingClientRect(); var top = xy.top-document.documentElement.clientTop+document.documentElement.scrollTop,//document.documentElement.clientTop 在IE67中始终为2,其他高级点的浏览器为0 bottom = xy.bottom, left = xy.left-document.documentElement.clientLeft+document.documentElement.scrollLeft,//document.documentElement.clientLeft 在IE67中始终为2,其他高级点的浏览器为0 right = xy.right, width = xy.width||right - left, //IE67不存在width 使用right - left获得 height = xy.height||bottom - top; return { top:top, right:right, bottom:bottom, left:left, width:width, height:height } } var test = getObjXy(document.getElementById('test')); alert("top:" + test.top + ", right:" + test.right + ", bottom:" + test.bottom + ", left:" + test.left); </script>
Ich glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall gelesen haben in diesem Artikel, mehr Bitte beachten Sie andere verwandte Artikel auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Detaillierte Erklärung des kleinen kugelparabolischen Effekts von Vue im Warenkorb
Detaillierte Erklärung von die Verwendung von Komponenten in Vue.js
Das obige ist der detaillierte Inhalt vongetBoundingClientRect-Verwendungsmethode und Kompatibilitätsverarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!