Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取文档加载时的图像高度_Javascript_Jquery_Html - Fatal编程技术网

Javascript 获取文档加载时的图像高度

Javascript 获取文档加载时的图像高度,javascript,jquery,html,Javascript,Jquery,Html,我想将div#top height设置为图像高度。我写道: $(document).ready(function() { setTopHeight(); }); /* * window resizing */ $(window).resize(function() { setTopHeight(); }); /* * setting #top height by banner height */ var setTopHeight = function() { var

我想将div#top height设置为图像高度。我写道:

$(document).ready(function() {
    setTopHeight();
});

/*
* window resizing
*/
$(window).resize(function() {
    setTopHeight();
});

/*
* setting #top height by banner height
*/
var setTopHeight = function() {
    var bannerHeight = $('#banner-image').height();
    $('#top').height(bannerHeight + 'px');
};
它可以调整大小,但在重新加载时不起作用。我试过这样的东西:

$(document).ready(function() {
    setTimeout(function() {
        setTopHeight();
    }, 50);
});
这是可行的,但当然不是解决方案。有人能告诉我为什么console.log返回0吗

$(document).ready(function() {
    console.log($('#banner-image').height());
});

.ready
无法工作,因为您的图像尚未加载。使用
.load
.ready
无法工作,因为您的图像尚未加载。使用
.load

$(文档)。就绪
在DOM就绪时触发,但图像可能仍在下载-因此还没有高度。您可以在图像上使用

$('#banner-image').on('load', function () {
    setTopHeight();
})
$(document).ready
在DOM准备就绪时触发,但图像可能仍在下载中-因此还没有高度。您可以在图像上使用

$('#banner-image').on('load', function () {
    setTopHeight();
})
作为事件处理程序
.load()
是('load,function(){})上的
.on的快捷方式。一旦图像/元素完全加载,它将被触发

例1:

$('#banner-image').load(setTopHeight);
例2

$('#banner-image').load(function(){
    setTopHeight();
});
例3

$('#banner-image').on('load', setTopHeight);
作为事件处理程序
.load()
是('load,function(){})
上的
.on的快捷方式。一旦图像/元素完全加载,它将被触发

例1:

$('#banner-image').load(setTopHeight);
例2

$('#banner-image').load(function(){
    setTopHeight();
});
例3

$('#banner-image').on('load', setTopHeight);
请改为尝试.load().ready()

请改为尝试.load().ready()


图像加载在文档之后的第二轮HTTP中。所以你需要听图像加载

$('#banner-image').load(setTopHeight);

图像加载在文档之后的第二轮HTTP中。所以你需要听图像加载

$('#banner-image').load(setTopHeight);

横幅图像是img标签的id还是图像包装div id?横幅图像是img标签的id还是图像包装div id?谢谢你和@eml Ivanov谢谢你和@eml Ivanov