2013-05-13 109 views
0

我已經使用jQuery代碼來擴展容器內Div的高度。 Here is the JSFiddle linkjQuery容器Div高度不擴展

但是,當調整瀏覽器寬度的大小時,Divs高度是固定的,並且文本溢出容器。下面的代碼可以改變,以擴大容器的高度和Div內的文字,使文本保持在?


jQuery代碼:

$(window).load(function() { 
$(window).resize(function() { 

    $(document).ready(function() { 
     var heightArray = $(".container>div").map(function() { 
      return $(this).height(); 
     }).get(); 
     var maxHeight = Math.max.apply(Math, heightArray); 
     $(".container>div").height(maxHeight); 
     $(".container>div").height(maxHeight); 
    }); 

}).trigger('resize'); 
}); 

風格:

.container { 
height: auto; 
float:left; } 

#half { 
width:48%; 
margin:0.5%; 
padding:0.5%; 
float:left; 
background-color:#1589FF; } 

HTML:

<div class="container"> 
<div id="half"> 
    <h1>About</h1> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Curabitur posuere enim eget turpis feugiat tempor. Etiam ullamcorper lorem dapibus velit suscipit ultrices. Proin in est sed erat facilisis pharetra.</div> 

<div id="half"> 
    <h1>News</h1> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. 
</div> 
</div> 
+0

ID必須是唯一 – billyonecan 2013-05-13 20:20:37

+0

'$(文件)。就緒(函數(){'應該換其他所有功能。 ..你也可以多次加載'document.ready' – jcho360 2013-05-13 20:30:08

+0

@ jcho360你不應該把'$(window).load'包裝在'document.ready'中,準備好的處理程序應該被完全刪除 – 2013-05-13 20:35:04

回答

1

第一次調整大小時,您正在設置固定高度,因此您必須設置高度自動然後調整div的大小,以便他們知道所需的大小應該是多少。否則,你得到的最大高度是你第一次設定的固定高度。

function resizeDivs() { 
    var heightArray = $(".container>div").map(function() { 
     return $(this).height(); 
    }).get(); 
    var maxHeight = Math.max.apply(Math, heightArray); 
    $(".container>div").height(maxHeight); 
    $(".container>div").height(maxHeight); 
} 

$(function() { 
    resizeDivs(); 
}); 

$(window).resize(function() { 
    $(".container>div").css('height', 'auto'); 
    resizeDivs(); 
}); 

的jsfiddle

http://jsfiddle.net/XXxNe/11/

+0

同意解決方案,但第一部分關於丟失css規則並不準確。規則適用於未更改的容器。孩子divs是。 – 2013-05-13 20:33:50

+0

對!讓我糾正 – sergioadh 2013-05-13 20:34:54

0

可以easyly做到通過加1行代碼,檢查此fiddle

我加入的時候調整大小功能被稱爲該行右:

$(".container>div").height(""); 

將高度設置爲自動和演算將重置權heigth。

1

您需要使用的offsetHeight,而不是高度來看看這個jsfiddle

$(window).load(function() { 
    $(window).resize(function() { 

     $(document).ready(function() { 
      var heightArray = $(".container>div").map(function() { 
       return $(this).offsetHeight ; //height(); 
      }).get(); 
      console.log(heightArray); 
      var maxHeight = Math.max.apply(Math, heightArray); 
      console.log(maxHeight); 
      $(".container>div").height(maxHeight); 
//   $(".container>div").height(maxHeight); 
     }); 

    }).trigger('resize'); 
});