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

..まともな仕事をしますが、私はそれらの列の1つにアコーディオンメニューがあり、列の高さを変更してスライドイン/スライドアウトします。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 に答える