使用jquery创建我自己的图像画廊网格

问题描述:

我被困在一个问题上,它创建一个图像网格,我无法弄清楚当我到达容器的末尾时如何在下一行开始铺设项目。我知道我可以使用砌体,但与此相关的问题是我的画廊需要全宽和砌体,你会得到1px空白问题masonry 1px issue。而只是使用普通的花车也不适合我,因为我的物品有不同的高度。我如何能解决这个问题的任何想法将是真棒使用jquery创建我自己的图像画廊网格

function layout() { 
    var itemPos = 0; 
    var itemHeight = []; 

    $('.gallery__item-list .gallery__item').each(function(index) { 
    itemHeight.push($(this).height()); 
    $(this).css({ 
     transform: "translate3d(" + itemPos + "px,0px,0)" 
    }); 
    itemPos += $(this).width(); 
    }); 
} 

CSS

.gallery__item,.grid-sizer { 
width: 100%; 
position: absolute; 
top: 0; 
left: 0; 
} 
@media screen and (min-width: 400px) { 
.gallery__item,.grid-sizer { 
    width: 50%;} } 
@media screen and (min-width: 600px) { 
.gallery__item,.grid-sizer { 
    width: 33.333%;} 
.gallery__item--body-posts{ 
    margin-bottom: 0px; 
} } 
@media screen and (min-width: 1000px) { 
.gallery__item,.grid-sizer { 
    width: 25%; 
} } 

您可以设置图像宽度的百分比,如果你的情况允许。假设你在一行中有三个图像,你可以设置宽度:33%,这将占用一行的全部宽度。所以根据计数你应该改变图像的宽度。当你连续获得前三张图像时,接下来的三张图像会进入第二排。我希望这能解决您的问题