2009-09-30 3 views
2

Я использую этот код для уравнительных колонок:Поддерживать равную высоту на изменении размеров (JQuery)

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

..does приличной работы, но у меня есть меню аккордеона в одном из этих колонн, скользит в/из изменения высота столбца, equalheight не играет с ним неплохо. Можно ли выравнивать столбцы каждый раз, когда они изменяются?

Спасибо, кучи!

+0

Даже пытался с SetTimeout и setInterval, не работает. :-( – 3zzy

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^