2012-06-01 3 views
6

Я использую Twitter Bootstrap с фиксированным расположением наряду с jQuery Masonry на определенной странице.jQuery Каменная кладка неправильная верхняя позиция

Работает, однако, начиная со второй строки, верхние позиции divs просчитываются и частично покрывают элементы первой строки.

Похоже, что скрипт завершает работу перед перестановкой элементов.

Странно, когда я открываю инспектора в Chrome или немного изменяю размер окна просмотра, divs прыгают в правильное положение. Обновление страницы иногда помогает, иногда нет ...

Мой Кладка сценарий:

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

Это нормальное поведение? Должен ли я добавить window.resize к вышеуказанному сценарию?

Размещение сценария кладки на самой странице или в заголовке, нижний колонтитул не изменяет его поведение.

Я вызываю masonry.js сразу после jQuery, перед любым другим Bootstrap js.

+0

Нет, добавляя 'resize' брейки кладка .. – elbatron

+0

второй ряд? вы размещаете свои div внутри строк? какие элементы вы перетасовываете с помощью кладки? –

+0

О, нет, извините за замешательство, а не «rowrap row». Теоретически я использовал теоретическое слово. Все элементы являются пролетами и находятся внутри одного промежутка, как вы можете видеть в приведенном выше скрипте. – elbatron

ответ

18

Просто прочитайте раздел справки здесь http://masonry.desandro.com/docs/help.html

Скрипт работает, прежде чем были загружены все изображения, вы должны запустить его после загрузки окна

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

Я отдам его. Это имеет смысл, поскольку изображения в блоках не имеют размеров, определяемых как макет. – elbatron

+0

Спасибо @Blac за указание раздела справки, похоже, что с плагином imagesLoaded блоки не перекрывают друг друга. – elbatron

+0

, вы также можете указать высоту для тега 'img', если это то же самое – mente

Смежные вопросы