当`document.readyState`仍然是`interactive`(使用React.js)时,是否有可能获得div的位置?

时间:2018-01-22 10:31:43

标签: javascript reactjs dom document

我有两个DIV,第一个DIV的位置和高度取决于第二个DIV的位置。如果第二个DIV在渲染后不会改变它的位置,我想(并且必须)在渲染后立即获得第二个DIV的位置,这样我就可以设置第一个DIV的属性并让第一个DIV正确呈现,及时。 (实际页面庞大而复杂,抱歉我只能在这里描述相关细节。简而言之,这是一个移动页面,使用一些rem auto calc逻辑重新渲染,每个位置都在相关DOM之后计算渲染。)

我试过这个(使用React.js):

将道具添加到名为ready-state的第一个DIV,其值设置为document.readyState值。

我想当document.readyState更改为interactive阶段(第二个div渲染出来)时,第一个DIV将被正确重新渲染。

但事实是,我不知道应该听哪个事件,所以我只是听了文件上的readystatechange事件。这会在第二个DIV的渲染时间和第一个DIV之间产生时间间隔

document.readyState更改为interactive后,我的页面会阻止一段时间。在此期间,第二个DIV已经渲染,但第一个DIV的道具尚未设置。只有当阻塞阶段结束时,第一个DIV才能通过document.getElementById('second-div')获得第二个DIV的节点引用。

#second-divreadystatechange时,我可以通过收听document.readyState事件来引用completed。但为时已晚。 (这使时间差

问题是:

document.readyState仍为interactive时,是否有可能获得DIV的位置? (因为我发现#second-div的DOM节点已经呈现并定位,所以不必等到readyState更改为complete。)

0 个答案:

没有答案