2013-01-02 56 views
0

所討論的頁面本質上是一個圖像網格,無論窗口的大小如何,它總是三個。使用jQuery根據%寬度設置CSS的高度

圖像來自WordPress的帖子,每個人都有自己的容器與溢出:隱藏。容器divs設置爲css,寬度爲33.33%。我在ready()和window resize上使用jQuery來設置容器div的高度等於它們的寬度。

的HTML/PHP的結構是這樣的:

<div class="collectionPostContainer"> 
        <div class="collectionImageHolder"> 
         <img src='<?php the_field('photo'); ?>'/> 
        </div> 
</div> 

JS的功能如下:

function resizeEntryHeight(){ 
windowWidth = $(window).width(); 
$('.collectionPostContainer').each(function(){ 
    $(this).css('height',$(this).width()+''); 
}); 

}

的問題是,當第一次加載頁面時,前四個條目每個被分配一個比以下條目略高的高度,在第三排放下網格。只要我在控制檯中調用函數或再次調整窗口大小,高度就會固定,並且都是平等的。

在多個開始窗口大小的Firefox和Chrome上進行測試。奇怪的是,前四個條目的高度總是比後面的條目高出5px。

所以我想知道爲什麼表面上具有相同寬度的元素在同一個循環內被分配了不同的高度,以及如何讓我的漂亮的圖像網格。

希望這是明確的!

謝謝。

+0

你永遠不會使用WINDOWWIDTH – algorhythm

+0

WINDOWWIDTH獲取別的東西不同的功能使用。 – Chris

+0

你能提供一些小提琴,所以我們可以確切地知道是什麼問題。 –

回答

0

這必須爲你工作

var resizeEntryHeight=function(){ 
$('.collectionPostContainer').each(function(){ 
    $(this).css('height',$(this).width()+'px'); 
}); 
} 

$(document).ready(function(){ 
resizeEntryHeight(); 
$(window).resize(resizeEntryHeight()); 
}); 
+0

這裏沒有顯示我的代碼,但我已經在$(document).ready()和$(window).resize()中調用resizeEntryHeight()。 – Chris

相關問題