Heim > Web-Frontend > js-Tutorial > getBoundingClientRect-Verwendungsmethode und Kompatibilitätsverarbeitung

getBoundingClientRect-Verwendungsmethode und Kompatibilitätsverarbeitung

php中世界最好的语言
Freigeben: 2018-04-13 09:35:56
Original
5495 Leute haben es durchsucht

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); // 元素左边距离页面左边的距离
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage