我正在研究一些使用 Element.getBoundingClientRect
(gBCR)以及内联样式更新的代码来执行计算。这不适用于一般网站,对于是否有“更好的CSS方式”执行此任务,我不关心也不感兴趣。
JavaScript同步运行并执行以下步骤:
我是否保证在步骤4中计算出的客户端边界将反射(reflect)父对象的新边界矩形?
如果没有规范的保证,那么Modern1浏览器实现是否“保证”了它?如果“基本有保证”,那有什么显着的异常(exception)?
元素不会添加到DOM中或从DOM中删除,而被修改的元素是父节点的直接子代;如果此类限制/信息相关。
1个“现代”版本:UIWebView(iOS 6 +),WebView(Android 2+)和常见的Chrome/WebKit,FF,IE9 +可疑-包括移动版本。
最佳答案
我只是对ios8.4.1/Safari8.0上的gBCR不可靠而感到困惑。
在主体顶部准备一个大div(gBCR为0),然后滚动到底部(gBCR为负)。将div的大小调整为1x1,然后window.scrollY
自动变为0。gBCR也应为0,但仍保持负值。使用setTimeout
(200毫秒后),您可以确认正确的值0。