获取图像宽度和高度

时间:2009-04-28 20:38:03

标签: javascript jquery

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

也许是因为我在询问它的尺寸之前用jQuery加载图像。如果是这种情况,是否有任何要监听的事件告诉图像何时被加载?

5 个答案:

答案 0 :(得分:3)

也许图片没有完全加载,因此无法提供尺寸。但是如果没有您的代码,我无法分辨出您做错了什么,但这是一个可行的示例

   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)'>

答案 1 :(得分:1)

这是一个有用的链接,请查看演示:http://docs.jquery.com/Events/load

使用jquery有一个load()事件,当图像完成加载时触发,即:

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


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

答案 2 :(得分:0)

取决于你在image.width或image.naturalWidth(和高度等值)之后的内容,width / height给出了image标签上的width / height属性,naturalWidth / Height给出了实际底层图像的尺寸。

答案 3 :(得分:0)

图片加载后,您可以使用img's onload获取尺寸:

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

答案 4 :(得分:0)

您可以尝试将 karim79 John Boker 的答案结合起来。 尝试将图像预加载到隐藏的DOM中,当它加载时,您可以尝试获取其宽度和高度。