惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
罗磊的独立博客
小众软件
小众软件
I
InfoQ
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
P
Proofpoint News Feed
博客园 - 司徒正美
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
N
Netflix TechBlog - Medium

Oyiso's Blog

后端开发之Go语言学习心得 – Oyiso's Blog 安装和使用Strapi时一些令人抓狂的问题 – Oyiso's Blog 手撸一个WordPress又拍云存储功能 – Oyiso's Blog 又又又更新了一下主题,创造了一个画展模板,以后可以欣赏到自己收藏的美图了 – Oyiso's Blog 为了做一个类似朋友圈的模板,我把评论区功能重写了 – Oyiso's Blog 最近在研究新的主题,这是属于own的主题,2024年新年主题 Oyiso's Theme 首次亮相 – Oyiso's Blog 实现元素hover效果:从左出现从右离开的下划线 – Oyiso's Blog
JS中使用getBoundingClientRect()方法获取精确的元素距离 – O...
神秘布偶猫 · 2023-05-17 · via Oyiso's Blog

This post was updated 406 days ago and some of the ideas may be out of date.

使用 node.offsetWidth 方法可以获取到元素的宽度,类似的方法如下:

  • offsetHeight
  • offsetTop
  • offsetBottm
  • offsetLeft
  • offsetRight

问题诞生

我们通过offset方法获取的数值会以四舍五入方式取整,然而在我们开发的时候,有些地方需要精准的数值,这时候,用offset方法就不太可行。

解决办法

通过 getBoundingClientRect() 方法就能获取到元素的精确数值 (精确到小数点后6位) 。

用法

node.getBoundingClientRect().width 就可以获取到元素的宽度,类似的方法如下:

  • getBoundingClientRect().height
  • getBoundingClientRect().top
  • getBoundingClientRect().bottom
  • getBoundingClientRect().left
  • getBoundingClientRect().right

精确到两位:getBoundingClientRect().height.toFixed(2)

详解

getBoundingClientRect() 返回的是矩形的集合。表示当前元素在浏览器中的位置以及占用的空间大小,除 widthheight 外,其他属性是相对于视图窗口的左上角进行计算,如下图: