[英]How can I run a function as soon as an element has finished rendering?
我需要根据另一个元素的高度设置一个元素的高度。 假设该元素完成渲染后,高度为490px。
如果我在$(document).ready()
函数开头查询其他元素的高度,则它将返回432px。
如果我在setTimeout(function, 100)
内查询其他元素的高度,则返回约475px。
如果将setTimeout
到150左右,则元素已完成渲染,得到190。但是显然我不能指望这一点。
如果可能,我不想等待整个页面完成加载; 我只想等待这个元素。
看来load
事件应该在任意元素上起作用,但是据我所知,它在浏览器或Chrome中没有实现。
编辑 :元素不是图像,并且(几乎可以肯定)没有图像将在元素内部。 它只是一个<div>
,其中包含其他<div>
和<p>
以及其他内容。 高度显然是在要应用的CSS中间查询的。 代码样本即将推出。
编辑2 : 这是从我的网站被黑客入侵的小提琴 。 (请原谅可怕的标记;不过我还没有清理Drupal的输出。)小提琴并没有表现出我要纠正的不良行为,因为整个代码段在Javascript的相关部分被渲染之前就已经呈现出来了。跑。
有没有办法做到这一点,还是我被window.onload
困住了?
您可以执行以下操作:
<img src="myImage.gif" onload="loadImage()">
您将至少要使用$(window).load()
因为您需要等待其他可能影响页面元素尺寸的资源,例如图像和CSS表单。
load()
也可以在图像上使用。 您应该能够正确使用它,而无需setTimeout
。
http://api.jquery.com/load-event/包含一个通知,指出它不适用于图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.