【发布时间】:2016-09-09 18:19:38
【问题描述】:
someElement.getBoundingClientRect() 的结果返回一个类型为ClientRect(或DomRect)的特殊对象
它的结构类似于{top: 10, right: 20, bottom: 30, left: 10, width: 10}
不幸的是,这个对象的行为与其他对象不太一样。
例如,在它上面使用Object.keys会返回一个空数组(我认为是因为ClientRect属性不是可枚举的
我发现了一种转换为普通对象的肮脏方式:
var obj = {}
for (key in rect) {
obj[key] = rect[key]
}
我的问题是,有更好的方法吗?
【问题讨论】:
-
这是 soooo hacky,但
Object.keys(document.body.getBoundingClientRect().__proto__)似乎在 chrome 中工作。 :P
标签: javascript dom getboundingclientrect