📅  最后修改于: 2023-12-03 15:16:15.243000             🧑  作者: Mango
在前端开发中,经常需要获取元素的位置信息,今天我们将介绍如何使用 JavaScript 获取 div 的 xy 位置。
元素的 offsetTop 和 offsetLeft 属性可用于获取相对于父元素的距离。当元素不是其父元素的第一个子元素时,这些属性包含父元素的顶部(和左侧)的边框宽度。
let div = document.getElementById("myDiv");
console.log("x position: " + div.offsetLeft);
console.log("y position: " + div.offsetTop);
这将输出 div 元素的左边距和上边距。
getBoundingClientRect() 方法返回一个元素的大小及其相对于视口的位置信息。该方法返回一个对象,其中包含了元素的 top、left、right 和 bottom 属性。
let div = document.getElementById("myDiv");
let rect = div.getBoundingClientRect();
console.log(rect.top, rect.right, rect.bottom, rect.left);
这将输出 div 元素相对于视口的上方、右侧、下方和左侧位置信息。
如果页面滚动时需要获取元素的位置信息,就需要结合滚动条的值计算位置。
let div = document.getElementById("myDiv");
let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
let scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
let rect = div.getBoundingClientRect();
console.log(rect.top + scrollTop, rect.right + scrollLeft, rect.bottom + scrollTop, rect.left + scrollLeft);
这将输出 div 元素相对于视口的上方、右侧、下方和左侧位置信息,同时也会考虑页面滚动的值。
以上是三种主要的方法,希望这个小提示能够对你有所帮助!