getBoundingClientRect

Posted shenjp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getBoundingClientRect相关的知识,希望对你有一定的参考价值。

getBoundingClientRect() 用于获取元素相对于浏览器饰扣的位置,这个API早已经是W3C标准兼容性不用担心,不过在IE下有些许的区别

{
  top: ‘元素顶部相对于视口顶部的距离‘,
  bottom: ‘元素底部相对于视口底部的距离‘,
  left: ‘元素左边相对于视口左边的距离‘,
  right: ‘元素右边相对于视口左边的距离‘,
  height: ‘元素高度‘,
  width: ‘元素宽度‘
}

// IE兼容性写法
function getClientReat(client) {
    const { top, bottom, left, right, height, width } = client.getBoundingClientRect()
    return {
        top,
        bottom,
        left,
        right,
        height: height || right - left,
        width:    width || bottom - top
} }

兼容性参见 https://caniuse.com/#search=getBoundingClientRect

MDN: https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect

 

以上是关于getBoundingClientRect的主要内容,如果未能解决你的问题,请参考以下文章

Element.getBoundingClientRect 啥时候保证更新/准确?

用getBoundingClientRect()来获取页面元素的位置

使用 useeffect 和 useref TypeError 时出错:无法读取 null 的属性“getBoundingClientRect”

利用getBoundingClientRect方法实现简洁的sticky组件

[转] getBoundingClientRect判断元素是否可见

getBoundingClientRect()方法