我确定您已经听说过isotope.js,但这里有一个指向项目部分的链接:https://isotope.metafizzy.co/layout-modes/masonry.html
这是我想要的所需布局的图像:
这是一个尽可能接近布局的codepen:https://codepen.io/levijosman/pen/GdewvN
我已经尝试更改项目的顺序(基于布局宽度),切换到不同的布局模式(如Packery)。正如您所看到的,我只是从预期布局中删除了一个网格项。使用isotope.js可以实现布局,还是不是?
<h1>Isotope - masonry layout mode</h1>
<div class="container">
<div class="grid">
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
</div>
.grid-item {
float: left;
width: 313.81px;
height: 200px;
margin-left: 10px;
margin-bottom: 10px;
background: #0D8;
border: 2px solid #333;
border-color: hsla(0, 0%, 0%, 0.7);
}
.grid-item--width2 { width: 637.64px; }
.grid-item--height2 { height: 410px; }
答案 0 :(得分:2)
看起来主要问题在于javascript中的itemSelector
;它应该是.grid-item
而不是masonry
,如下所示:
$('.grid').isotope({
itemSelector: '.grid-item',
masonry: {
columnWidth: 100,
gutter: 8
}
});
然后它应该按预期流动,您只需要在大框之后用另一个grid-item--height2
grid-item
替换您的div
课程:
<div class="grid">
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>