Kết quả của someElement.getBoundingClientRect()
trả về một đặc biệt đối tượng loại ClientRect
(hoặc DomRect
rõ ràng)Làm thế nào tốt nhất để chuyển đổi một ClientRect/DomRect vào một đối tượng đồng bằng
Nó được cấu trúc như {top: 10, right: 20, bottom: 30, left: 10, width: 10}
Thật không may, đối tượng này không hoạt động giống như các đối tượng khác.
Ví dụ, sử dụng Object.keys
vào nó trả về một mảng rỗng (Tôi nghĩ rằng vì ClientRect
tính không đếm
tôi tìm thấy một cái gì đó một cách bẩn để chuyển đổi sang một đối tượng đơn giản:
var obj = {}
for (key in rect) {
obj[key] = rect[key]
}
Câu hỏi của tôi là, có cách nào tốt hơn không?
Đây là _soooo_ hacky, nhưng 'Object.keys (document.body.getBoundingClientRect() .__ proto __)' dường như làm việc trong chrome. : P –