Javascript 获取图像宽度和高度

Javascript 获取图像宽度和高度,javascript,jquery,Javascript,Jquery,当没有为图像指定样式(jQuery的css()返回0)时,我需要在javascript(jQuery)中获取图像的维度 可能是因为我在请求图像的尺寸之前,正在用jQuery加载图像。如果是这种情况,是否有任何事件可供侦听,以告知何时加载了图像?取决于您所追求的图像。宽度或图像。自然宽度(和高度等效值)宽度/高度在图像标记上给出宽度/高度属性,naturalWidth/Height提供实际基础图像的尺寸。加载图像后,可以使用获取尺寸: <img src="..." onload="getDi

当没有为图像指定样式(jQuery的css()返回0)时,我需要在javascript(jQuery)中获取图像的维度


可能是因为我在请求图像的尺寸之前,正在用jQuery加载图像。如果是这种情况,是否有任何事件可供侦听,以告知何时加载了图像?

取决于您所追求的图像。宽度或图像。自然宽度(和高度等效值)宽度/高度在图像标记上给出宽度/高度属性,naturalWidth/Height提供实际基础图像的尺寸。

加载图像后,可以使用获取尺寸:

<img src="..." onload="getDimensions(this)" />

这里有一个有帮助的链接,请看演示:

在jquery中,当图像加载ie完成时,会触发一个load()事件:

<script type="text/javascript">
    $(document).ready(function()
    {
        $('#theImage').load(function()
        {
            // do the stuff here.
        });
    });
</script>


<img src="blah.jpg" id="theImage" />

$(文档).ready(函数()
{
$('#theImage')。加载(函数()
{
//在这里做事。
});
});

可能图像未完全加载,因此无法给出尺寸。但如果没有您的代码,我无法判断您做错了什么,但这里有一个示例可以工作:

function LoadImage(isrc) {
    var oImg = new Image();
    oImg.src = isrc;
    if (oImg.complete) {
        window.alert(oImg.src + ' ' + oImg.width + ' x ' + oImg.height);
    }
    else {
        window.setTimeout('iLoad(imgsrc)', 1000);
    }
}

<body onLoad='LoadImage(imgsrc)'>
函数加载映像(isrc){
var oImg=新图像();
oImg.src=isrc;
如果(oImg.完成){
窗口警报(oImg.src+''+oImg.width+'x'+oImg.height);
}
否则{
setTimeout('iLoad(imgsrc)'1000);
}
}

你可以尝试将卡里姆79和约翰·博克的答案结合起来。
尝试将图像预加载到隐藏的DOM中,加载后可以尝试获取其宽度和高度。

complete似乎不适用于chrome。到目前为止,这对我很有效: