在检查器的 JS 控制台中,从 Safari 或 Chrome 或您拥有的其他设备中尝试此操作。
var x = document.body.getBoundingClientRect();
> undefined
x.top;
> 0
x.top += 5;
> 5
x.top;
> 0
我原以为由 生成的对象getBoundingClientRect()
是可修改的对象。我刚刚证明这是错误的。它也不会与浏览器的状态保持同步,所以如果我稍微滚动页面,然后检查 的值x.top
,它仍然会报告,0
即使它现在应该是负值,因为我已经向下滚动了。至少,如果我用另一个调用重新分配 x ,getBoundingClientRect()
那么它会报告一个负值。
所以,它没有回应我试图改变它,但表现出这种行为似乎没有更高的目的。
也许有某种干净的方式来解释这一点?比*耸肩*更好的东西就是它的作用。