2015-01-18 2 views
1

Я написал jsfiddle here, который показывает макет кластера jquery с статической шириной для элементов, которые должны быть установлены в «кирпичном» макете. Кажется, все работает нормально.jquery Элементы кладки «коллапсинг» с опцией ширины жидкости

HTML:

<body> 
<div id="container"> 
<div class="item">Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor. Etiam dignissim. Proin malesuada adipiscing lacus. Donec metus. Curabitur gravida.</div> 
<div class="item">Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis.</div> 
<div class="item">Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</div> 
<div class="item">Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.</div>  
<div class="item">Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.</div> 
<div class="item">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</div> 
</div> 
</body> 

CSS:

#container { 
    width: 900px; 
} 

.item { 
    background: green; 
    box-shadow: inset 0 0 0 1px #fff; //to deliniate boxes 
    float: left; 
    width: 33.333%; 
} 

SCRIPT:

$('#container').masonry({ 
itemSelector: '.item', 
columnWidth: 300 
}); 

Согласно Masonry documentation, вы можете передать в функцию, чтобы установить нестатический ширину столбца до доли ширины контейнера. Я написал еще один jsfiddle here, с функцией ширины жидкости, заменяющей функцию статической ширины. Функция:

$('#container').masonry({ 
    itemSelector: '.item', 
    columnWidth: function(containerWidth) { 
     return containerWidth/3; 
    } 
}); 

Как вы можете видеть, .item дива «коллапс» друг на друг, поскольку сценарий кладки позиционирует их совсем, но не добавляет какую-либо верхнюю или левую стиль позиционирования, как это делает с статическим ширина столбца. Я пробовал это сейчас десятки раз, используя несколько методов кладки и загрузку скриптов в различном порядке, и каждый раз получаю одинаковый результат.

Что мне здесь не хватает?

+1

Ваш код использования для кладки v2 (ваша ссылка на документацию также относится к v2), но с использованием кладки v3 в вашем jsfiddle. – Macsupport

ответ

0

Вместо использования функции ширины столбца вы можете просто использовать размер элемента в документации here.

Таким образом, вместо этого:

$('#container').masonry({ 
    itemSelector: '.item', 
    columnWidth: function(containerWidth) { 
     return containerWidth/3; 
    } 
}); 

Вы можете использовать это:

$('#container').masonry({ 
    itemSelector: '.item', 
    columnWidth: '.item' 
}); 

И затем использовать процентное значение ширины для .item в CSS, т.е.

.item { width: 33.333%; } 

Here's the jsfiddle

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

  • Нет связанных вопросов^_^