2009-09-30 15 views
2

-je utiliser ce code pour les colonnes égalisateurs:Maintenir la même hauteur sur Modifier la taille (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 un emploi décent, mais j'ai un menu d'accordéon dans l'une de ces colonnes qui coulisse dans/sur l'évolution la hauteur de la colonne, equalheight ne joue pas bien avec elle. Est-il possible d'égaliser les colonnes chaque fois qu'elles sont redimensionnées?

Merci beaucoup!

+0

même essayé avec setTimeout et setInterval, ne fonctionne pas. :-( – 3zzy

Répondre

4

D'accord, cela fonctionne très bien cross-browser:

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