2012-06-01 9 views
6

私は特定のページでjQuery Masonryと共に固定レイアウトのTwitterブートストラップを使用しています。jQuery Masonryトップポジションが間違っています

2番目の行から開始して、divの先頭の位置が誤って計算され、最初の行の要素を部分的にカバーしています。

要素を並べ替える前にスクリプトが終了するようです。

不思議なことに、Chromeでインスペクタを開いたり、ビューポートのサイズを少し変更したりすると、divが正しい位置にジャンプしています。

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

これは正常な動作です:?時々ページを更新すると、時々...

私の石工スクリプトはありません、助け上記のスクリプトにwindow.resizeを追加する必要がありますか?

ページ自体またはヘッダーにmasonryスクリプトを配置しても、フッターはその動作を変更しません。

私はmasonry.jsをjQueryの直後に、他のブートストラップjsの前に呼び出しています。

+0

をロードした後、あなたはそれをトリガーする必要が実行されます。.. – elbatron

+0

2行目?あなたのdivを列の中に置いていますか?あなたは何の要素を石積みに並べていますか? –

+0

ああ、いいえ、混乱のために申し訳ありません、 "ブーストラップの行"。私はここで理論的に単語列を使用しました。上記のスクリプトで分かるように、すべての要素はスパンであり、1つのスパンの内側にあります。 – elbatron

答えて

18

ただ、ここhttp://masonry.desandro.com/docs/help.html

をヘルプセクションを読んで、スクリプトは、すべての画像がロードされる前にウィンドウがresize`は石工を壊し `加えること、ありません

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

私はそれを行こう。ブロック内のイメージには、レイアウトが流動的であるために定義された寸法がないため、理にかなっています。 – elbatron

+0

ヘルプセクションを指摘してくれてありがとう@Blac、imagesLoadedプラグインではブロックがお互いに重なっていないようです。 – elbatron

+0

代わりに 'img'タグの高さを指定することもできます – mente

関連する問題