2

我使用此代码来平衡列:

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");
 }
});
};

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

多谢!

4

1 回答 1

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);
于 2009-10-01T03:55:47.823 回答