Wynik someElement.getBoundingClientRect()
zwraca specjalną obiektu typu ClientRect
(lub DomRect
podobno)Jak najlepiej konwertować ClientRect/DomRect do zwykłego obiektu
Jest strukturze jak {top: 10, right: 20, bottom: 30, left: 10, width: 10}
Niestety, tego obiektu nie zachowuje się tak jak inne obiekty.
Na przykład, używając Object.keys
na to zwraca pustą tablicę (myślę ponieważ ClientRect
właściwości nie są przeliczalny
znalazłem coś brudnego sposób przekonwertować do zwykłego obiektu:
var obj = {}
for (key in rect) {
obj[key] = rect[key]
}
Moje pytanie brzmi: czy jest lepszy sposób?
To _soooo_ hacky, ale 'Object.keys (document.body.getBoundingClientRect() .__ proto __)' wydaje się działać w chromie. : P –