如何知道一次浏览器渲染布局(layout)已经结束?

我们公司是做在线阅读器的,其中使用到了column的形式展示数据。
我在一个container div上写好了各种column的css定义。
然后在特定的时候,要从后台拿到真正的图书内容,加到container里面,同时还需要显示一下目前内容实际分成了多少页。

现在的问题是,因为浏览器布局有一个时间差,所以我们的JS获取的实际内容宽度,发生了抖动,尤其是当存在图片时。

示例代码如下:

$('#container').append(newContent); // newContent是从后台拿到的数据,已经转为一个普通的div$('#container').width();   //我们需要获取到宽度值,然后经过一系列计算,可以算出新的内容一共分了多少页

问题是,马上执行上述代码,可能获得的宽度值是不准确的,需要等一会儿再获取,才是准确的。
可是,因为我们不知道newContent的可能长度是多少,也就没法预估一个比较合适的延迟值。最好是能找到一个类似于document.ready这样的方法,可以用来判定某次修改已经layout完成,从而可以获取到准确的数值。

请问,有这样的回调方法吗?或者有什么方法可以实现“抓住准确的layout完成时点”?

多谢各位大侠


精慕HU
浏览 736回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript