我有一个图像,它位于常规DIV中。我们称之为DIV b。在 DIV b 之上还有另一个 DIV,我称之为 DIV a.DIV a 有溢出:隐藏。这是代码:
<div id="a">
<div id="b">
<img id="image" src="http://fgjdfgsjh.com/images/hghgajfhsd.jpg" height="186" width="900">
</div>
</div>
。下面是此示例的一些重要 CSS:
#a {overflow: hidden; height: 128px;}
。最后是一些.js:
<script>
$(document).ready(function(){
var test = $('#image').attr('height');
alert(test);
});
</script>
如您所见,图像上已经设置了高度属性。我的脚本(jQuery)需要获取该信息,但是当我使用$('#image').attr('height')时,脚本会向我提供数字128,这是包含 #b 和图像的 #a 元素的高度,而不是图像的预期高度,它是186,在HTML中设置为属性。
这发生在Chrome中。Firefox 可以获得正确的图像高度(186,而不是 128)。
如何在 Chrome 中获取图片的实际原始高度?是否可以使用简单的jQuery来做到这一点,或者我是否必须做一些噱头(例如在单独的对象中重新加载图像并检查其原始高度)?
CSS通常比height
属性更受欢迎。要使用 jQuery,请使用 .css
:
$('#image').css('height');
这将在这里返回186px
。如果您只想186
,请使用.height
:
$("#image").height();
Chrome 在这个问题上有一个不稳定的行为。我尝试了 @Mooseman 提供的代码,但是当一遍又一遍地刷新页面时,有时脚本会弹出 128px,有时它会弹出 186px!
看起来始终如一地执行此操作的唯一方法是动态加载图像。我从这里借用了代码:"获取动态图像的宽度和高度"。
最后,代码是:
$('<img/>').attr('src', $('#image').attr('src')).load(function() {
// Then just get the resulting loaded image height by using:
var myHeight = this.height;
}