如何使用JQuery获得真实的图像高度?

时间:2012-05-14 04:13:17

标签: javascript jquery html css image

我想加载html,然后获得真实的图像高度。

$("#cover").html(stuff); //this has the image inside it
$(function(){
    console.log($("#cover img").height()); //sometimes it's 0
});

由于某种原因,高度有时为0.可能是因为图像尚未完全加载,而JQuery将其视为0?如果是这样,我该如何克服这一点?加载图像时是否有回调或其他内容?

7 个答案:

答案 0 :(得分:3)

您可以使用jQuery的.load()方法

$('#cover').html(stuff);
$('#cover img').load(function () {
    console.log($(this).height());
};

答案 1 :(得分:1)

为什么console.log里面有一个匿名函数?你试过这个吗?

$("#cover").html(stuff); //this has the image inside it
console.log($("#cover img").height());

答案 2 :(得分:0)

//locate the image(s)
$("#cover img").each(function(){

    //Build a new Image Object outside the DOM
    //that way, CSS won't affect it
    var img = new Image();

    //add a callback when loaded
    img.onload = function(){
        //your width and height
        //img.width
        //img.height
    }

    //use the image src to load
    //use attr() to resolve path issues across browsers
    img.src = $(this).attr('src');

});

答案 3 :(得分:0)

尝试使用我们可以利用的load method方法,使其按照我们想要的方式工作。

  

我们现在遇到的问题是,在Webkit浏览器中,jQuery代码在DOM准备就绪并且在映像加载之前就已准备好DOM时运行。所以代码运行但由于没有图像可以得到宽度,我们得到图像的宽度为0。我们可以使用load方法使代码等到窗口在运行之前完全加载。

 $(window).load(function() {
            console.log($("#cover img").height()); 
});

答案 4 :(得分:0)

尝试使用attr()获取高度: -

$("#yourElemengtID").attr('height')

答案 5 :(得分:0)

这是我用过的一小段代码,希望这能帮到你 在鼠标处于调用此功能时显示的图像上

function MouseIn()
        {
            var src;
            //to get original image size
            var img =$(this);// displayed image
            var theImage = new Image();// create a cache image
            var imgsource =img.attr("src");// take the src of displayed image
            theImage.src = imgsource;// give cached image the source of displayed image
            var original_height = theImage.height// take height of image from the source
            var original_width = theImage.width;//take width of image from the source

            // to get the displayed image size
            var Image_displaysize_width= img.width();
            var Image_displaysize_height= img.height();
      }

答案 6 :(得分:0)

你不想做这样的事吗?

   jQuery("#myImg")[0].naturalHeight

在可能的情况下,最好还是不要使用jQuery的开销。

   document.getElementById('myImg').naturalHeight