2012-06-01 35 views
6

我正在使用帶有固定佈局的Twitter Bootstrap以及特定頁面上的jQuery Masonry。jQuery Masonry錯誤的頂部位置

它正在工作,但是從第二行開始,div的頂部位置被錯誤計算,部分覆蓋了第一行的元素。

它看起來像腳本在重新排列元素之前退出。

奇怪的是,當我在Chrome中打開檢查器或稍微調整視口大小時,div會跳到正確的位置。刷新頁面有時幫助,有時不...

我的磚石腳本:

jQuery(document).ready(function(){ 
    jQuery('.span9').masonry({ 
     itemSelector: '.span3', 
     columnWidth: function(containerWidth) { 
     return containerWidth/3; 
     } 
    }); 
}); 

這是正常的行爲呢?我應該將window.resize添加到上面的腳本中嗎?

將砌體腳本放在頁面本身或頁眉中,頁腳不會改變它的行爲。

我在jQuery之後調用masonry.js,在任何其他Bootstrap js之前。

+0

無後,加入'resize'休息砌築.. 。 – elbatron

+0

第二排?你把你的div放在行內嗎?什麼元素你與磚石混洗? –

+0

哦,不,對不起,混亂,而不是「助推器行」。我在這裏理論上使用了這一行。所有元素都是跨度的,並且在一個範圍內,如您在上面的腳本中所看到的。 – elbatron

回答

18

剛剛讀到這裏http://masonry.desandro.com/docs/help.html

幫助部分腳本已經加載的所有圖像之前運行,則有可能引發它的窗口中加載

$(window).load(function(){ 
    $('#container').masonry({ 
    // options... 
    }); 
}); 
+0

我會放棄它。這很有意義,因爲塊中的圖像沒有定義尺寸,因爲佈局是流暢的。 – elbatron

+0

感謝@Blac指出幫助部分,似乎與圖像加載插件塊不互相重疊。 – elbatron

+0

或者你可以爲'img'標籤指定高度,如果它相同的話 – mente