element.height返回可见高度 - 我想要总数?

时间:2013-03-07 16:00:11

标签: javascript jquery height image

显然这只发生在我身上 - 我想不出为什么,但如果它有效,我很高兴:)

我有一个全屏幻灯片,我创建了一个垂直居中任何太大图像的功能。

    function fixImages(){
    maxheight = $('.index-slide-container').height();
    $('.index-slide-container img').each( function(index, ele){
        if (ele.height > maxheight){
            offset = ( maxheight - ele.height ) / 2;
            $(ele).css('top', offset + 'px');
        }
    });
}
fixImages();

然而,ele.height返回图像可见部分的高度(它的容器高度,因为它具有overflow:hidden,即使在我console.log(ele)并展开元素时, 'height'显然是正确的值。

我还尝试过$(ele).height()$(ele).css('height')$(ele).outerHeight()ele.clientHeight;所有这些都返回相同。

由于

1 个答案:

答案 0 :(得分:0)

我做了一些测试,并且$('img')。height();给了我正确的图片高度。

如果您希望垂直居中,为什么不使用像这样的css绝对定位,例如:

.index-slide-container img {
    position:absolute;
    top:50%;
}

而且,您可以使用jQuery以编程方式设置负边距:

 $('.index-slide-container img').each( function(i, e){
     var height = $(e).height() / 2;
     $(e).css({'margin-top':'-'+height});
 });