我正在研究一些使用Element.getBoundingClientRect
(gBCR)的代码,并结合内联样式更新来执行计算。 这不是针对一般网站,我不关心或感兴趣的是,如果有“更好的CSS方式”来完成这项任务。什么时候Element.getBoundingClientRect保证更新/准确?
中的JavaScript运行同步,并执行下列步骤:
- 父gBCR被取出
- 计算被执行和;
- 父的子元素有更新内联CSS样式(例如大小和边距)
- 父母的gBCR被重新获取
我保证所计算的客户端边界将反映父母的新边界矩形在步骤4?
如果不是由规格保证,这是“保证”现代浏览器的实施?如果“基本保证”,那里有什么明显的例外?
元素是而不是被添加到DOM或从DOM中删除,并且被修改的元素是父节点的直接子元素;如果这种限制/信息是相关的。
“现代”:的UIWebView(iOS的6+),web视图(的Android 2+),和通常的镀铬/ WebKit的,FF,IE9 +嫌疑人 - 包括移动版本。
我不能肯定地说,但我已经做了很多工作与gBCR,我几乎100%积极的工作,因为许多SO关于如何“手动刷新”页面样式的问题包括调用gBCR。我会得到一些链接 – Markasoftware 2014-11-08 04:00:21
@Markasoftware听起来令人鼓舞!我对桌面浏览器(IE10 +等)没有任何问题,但我的经验有限,我没有在移动设备或OS X上进行测试的方法。 – user2864740 2014-11-08 04:19:13
您是否有任何理由相信它未在即时的? – 2014-11-08 04:28:25