Javascript 为什么在加载img之前发生window.load事件?
加载HTML文档后会发生Javascript 为什么在加载img之前发生window.load事件?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,加载HTML文档后会发生ready事件,而window.onload事件会在加载所有内容(例如图像、css)后发生 在下面的代码中 jQuery(window).load(函数(){ jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”“+”width=“+jQuery('#img1').width()); }); 预期产量 实际产量 所以 (一) 为什么在加载img之前发生window.onload事件 (二)
ready
事件,而window.onload
事件会在加载所有内容(例如图像、css)后发生
在下面的代码中
jQuery(window).load(函数(){
jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”
“+”width=“+jQuery('#img1').width());
});
预期产量
实际产量
所以 (一) 为什么在加载
img
之前发生window.onload
事件
(二)
等价的javascript代码是什么
jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”
“+”width=“+jQuery('#img1').width())代码>?您正在尝试展开Div,使其与图像大小相同?
我从链接上看到了一些教程。。。我认为你做得太过分了
1-您可以在div中包含th图像
2-如果您没有访问html的权限,可以将图像附加到div中
对于第一点,使用window.onload
notload
阅读此内容了解更多信息
关于你的第二点
jQuery('#div1').html(“Height=“+jQuery('#img1').Height()+”
“+”width=“+jQuery('#img1').width())代码>
转换为JS有点困难
我可以让你参考这篇文章,有很多工具可以将表单JQ转换为JS
关于第一个问题为什么在加载img之前发生window.load事件?:
没有。根据您的输出屏幕截图,您显然得到了.height()
和.width()
方法的值。这意味着要么图像已加载,要么图像的高度/宽度由CSS设置
对于第二个问题,在香草javascript中,它可以写成
document.querySelector('#div1')。innerHTML=“Height=”+
parseFloat(getComputedStyle(document.querySelector('#img1')).height)+“
”+
“width=“+parseFloat(getComputedStyle(document.querySelector('#img1'))).width);
正如您在jquery的文档和方法中所看到的,它们都返回“当前计算的”宽度/高度
因此,如果您的图像尚未加载,这些方法将返回24
,这是默认的notfound
图标或0
的大小
var before=“before load height=“+jQuery('#img1').height()+”
“+”before load width=“+jQuery('#img1').width()+”
”;
jQuery(window).load(函数(){
jQuery('#div1').html(在+“加载高度”之前=“+jQuery('#img1').height()+”
“+”加载宽度=“+jQuery('#img1').width());
});代码>
而不是window.load您可以使用document.ready()…在上面的代码中,我希望在加载img
后呈现高度和宽度值。我认为您可以通过简单的CSS@www139多么糟糕的建议。。。虽然DOM元素将在脚本解析时创建,但内容仍然不会被加载,宽度和高度将为0。@overexchange,在对您的问题进行更深入的研究后,您是否对文本呈现在图像的顶部而不是底部感到惊讶?在本例中,这很正常,您将#div1
放在HTML层次结构的第一位。另外,您有正确的值,因此在load
处理程序从我处激发.downvote时,您的图像将被渲染。代码不适用于窗口。onload
。当我把它传递给文档时,我通常会给onload
。。。。但总的来说,你做得太过分了,而且你走得太远了,方法是错误的。。。我不明白为什么你要把div扩展到照片的大小!我认为使用$('body')
而不是$('div1')
可以更好地测试这个练习。你是对的