首页 新闻 会员 周边

获取document的高度问题

0
[已关闭问题] 关闭于 2017-11-24 09:22

页面刚进来就要获取document的高度,但是此时的ajax数据并没有渲染完成,该怎么解决?大牛们求指导!!!

~逍遥★星辰~的主页 ~逍遥★星辰~ | 菜鸟二级 | 园豆:245
提问于:2017-11-23 16:21
< >
分享
所有回答(3)
0

你要在"现在"获取"未来"的document高度?

吴瑞祥 | 园豆:29449 (高人七级) | 2017-11-23 16:40

对的,页面刚加载的时候document的高度仅仅是未渲染数据之前的高度,现在就想获取到渲染数据之后的document高度。后端只返回了ajax的调用方法

支持(0) 反对(0) ~逍遥★星辰~ | 园豆:245 (菜鸟二级) | 2017-11-23 16:46

@~逍遥★星辰~: 你可以发明一个时间机器.然后用js调用这个时间机器.让时间机器返回未来的高度.

或者将获取dom高度的时间推迟到加载完成后

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-11-23 17:04

@吴瑞祥: 我感觉推迟时间应该不太好吧,因为如果用户网速不好的话,请求ajax的时候时间也会长一点,那么这个时间也是不好确定的,至于时间机器,返回未来的高度,还请指教。

支持(0) 反对(0) ~逍遥★星辰~ | 园豆:245 (菜鸟二级) | 2017-11-23 17:09
0

一般是不能的,不过你可以尝试去计算出ajax即将加载的数据所需高度,举个栗子,ajax数据是那种列表类型的数据,比如,48个产品,4个为页面一排,每个产品固定高度50,那么ajax数据即将(未来)所需高度就是48/4*50=600px; 

如果数据的高宽之类不固定或者无法预知的话,是不可能在数据加载完成之前得出高度的。

顾星河 | 园豆:7173 (大侠五级) | 2017-11-23 16:47

哦,那就尴尬了,主要是页面上的ajax不止一个,而且每个ajax数据的内容都也不一样。。。

支持(0) 反对(0) ~逍遥★星辰~ | 园豆:245 (菜鸟二级) | 2017-11-23 16:51
0

把获取的document高度的代码,写在window.onload = function(){}内。

闪闪&红星 | 园豆:214 (菜鸟二级) | 2017-11-23 16:56

这样是不行的,已经试过了,估计是因为window.onload()是加载dom树节点的,跟ajax渲染数据没有关系的原因吧

支持(0) 反对(0) ~逍遥★星辰~ | 园豆:245 (菜鸟二级) | 2017-11-23 16:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册