繁体   English   中英

jQuery在加载图像之前获取图像高度?

[英]jQuery gets the image height before the image is loaded?

我环顾四周并尝试了许多解决方案,但jquery仍尝试在加载图像之前获取图像高度:

$('img').load(function(){
    var heightStart = $(".carousel .carousel-inner img").height();
    alert(heightStart); // 0
});

我总是得到0 有什么想法是最好的方法吗?

我什至尝试使用普通的js:

    var i = new Image()
    i.src = "images/xxx.jpg";
    var h = i.height
    alert(heightStart); // 464

它得到图像的高度,但是数字错误! 该数字始终较小,但图像的高度较长。

编辑:

图像没有高度和宽度属性:

<div id="myCarousel" class="carousel slide" data-ride="carousel">

    <div class="carousel-inner">

    <div class="item active">

        <img class="first-slide" src="images/xxx.jpg" alt="First slide" class="img-responsive">
        <div class="container">
            <div class="carousel-caption">xxx</p>
                </div>
            </div>
        </div>
    </div>

我的图像高度是464所以new Image()正确的 但是问题是图像已在大屏幕上使用img-responsive sensitive调整大小。

$('img').load(function(){
    alert($(this).height());
});

要么

var i = new Image()
i.src = "images/xxx.jpg";
i.onload = function() { alert(this.height) };

答案有一个解释-您的第一个函数.carousel .carousel-inner侦听器注册到所有当前img元素,这些警报会提醒.carousel .carousel-inner高度.carousel .carousel-inner的第一个匹配img元素,该高度可能为0(知道)。

原始示例的问题在于,您试图在图像加载完成之前警告高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM