使用 jQuery 创建我自己的图片库网格



我遇到了一个问题,它正在创建一个图像网格,当我到达容器的末尾时,我不知道如何在下一行开始布置项目。我知道我可以使用砖石,但问题是我的画廊需要全宽,而使用砖石,你会得到 1px 空白问题砖石 1px 问题。仅仅使用常规的浮子对我也不起作用,因为我的物品有不同的高度。关于我如何解决这个问题的任何想法都会很棒

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%;
 } }

如果允许,您可以以百分比形式设置图像宽度。假设您连续有三个图像,您可以设置 width:33%,这将占用一行的整个宽度。因此,根据计数,您应该更改图像的宽度。当您获得前三行图像时,接下来的三张图像将出现在第二行。

我希望这可以解决您的问题

最新更新