调整大小时保持相等的高度(jQuery)

时间:2009-09-30 11:29:13

标签: jquery height equals

我使用此代码来均衡列:

jQuery.fn.equalHeight=function() {
var maxHeight=0;
this.each(function(){
 if (this.offsetHeight>maxHeight) {maxHeight=this.offsetHeight;}
});
this.each(function(){
 $(this).height(maxHeight + "px");
 if (this.offsetHeight>maxHeight) {
  $(this).height((maxHeight-(this.offsetHeight-maxHeight))+"px");
 }
});
};

..做得不错,但是我在其中一个列中有一个手风琴菜单,它可以滑入/滑出改变列的高度,相同的高度并不适合它。是否可以在每次调整大小时均衡列?

谢谢堆!

1 个答案:

答案 0 :(得分:4)

好的,这适用于跨浏览器:

(function($) {

    $.fn.equalHeight = function(){
        var height = 0,
            reset = $.browser.msie ? "1%" : "auto";

        return this
            .css("height", reset)
            .each(function() {
                height = Math.max(height, this.offsetHeight);
            })
            .css("height", height)
            .each(function() {
                var h = this.offsetHeight;
                if (h > height) {
                    $(this).css("height", height - (h - height));
                };
            });

    };

})(jQuery);