javascript - 同位素和 DOM 顺序

标签 javascript jquery jquery-isotope

在此 CodePen ( http://codepen.io/marcamos/pen/LkZByj ) 中,我设置了一个由正方形、风景或肖像组成的同位素网格图像,其中风景的宽度是正方形的 2 倍,肖像的高度是正方形的 2 倍。 (CodePen 中的 HTML、CSS 和 JS 示例位于本文底部。)

无论视口(viewport)宽度如何,我都看到上面有一个空白区域,我认为一个正方形会直接移入其中。请参阅此屏幕截图:https://dl.dropboxusercontent.com/u/1851858/Grid_Demo.jpg

这让我印象深刻,因为 Isotope 受到 DOM 顺序的限制……这很可能是真的,但我认为 Isotope 的 Masonry 布局会忽略这些事情并填充所有可用空间。我错了吗?

<小时/>
<ul class="grid" id="grid">
  <li class="grid__sizer"></li>
  <li class="grid__item grid__item--landscape fadable">
    <a href="#">
      <figure>
        <img src="http://noonsharp.design/client/tag/imgs/fpo-square/fpo-2x1.jpg" /> <!-- Landscape -->
        <figcaption class="grid__meta">
          <span class="grid__project-name">Project Title</span>
          <span class="grid__client-name">Client</span>
        </figcaption>
      </figure>
    </a>
  </li>
  <!-- ...and so on... -->


.grid__item--square,
.grid__item--portrait,
.grid__sizer {
  width: 50%;

  @media (min-width:$bp-medium) {
    width: 33.333%;
  }
}

.grid__item--landscape {
  width: 100%;

  @media (min-width:$bp-medium) {
    width: 66.666%;
  }
}
<!-- ...and so on... -->


var grid = $('.grid').isotope({
  itemSelector: '.grid__item',
  percentPosition: true,
  masonry: {
    columnWidth: '.grid__sizer'
  }
});

grid.imagesLoaded().progress(function() {
  grid.isotope('layout');
});

最佳答案

看起来我的问题的答案是:使用 Packery 布局模式而不是 Masonry,直接来自 Metafizzy:https://twitter.com/metafizzyco/status/758733290136178691

如果您访问我上面发布的 CodePen 网址,您会看到现在一切都按预期工作。

谢谢 Metafizzy!

关于javascript - 同位素和 DOM 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38592736/

相关文章:

javascript - 注册多个事件监听器,即使我正在使用 removeEventListener

javascript - 每天从数组中选择新项目

javascript - jQuery/Isotope 复杂的 AND/OR 过滤

javascript - 使用 jQuery 更改段落中的符号

javascript - Div 类,当 div 在屏幕上但每个 div 只显示一次时显示警报?

jquery - 未捕获的类型错误 : Cannot read property 'LayoutMode' of undefined

javascript - jQuery Isotope 按数字排序错误地排序项目

javascript - React-Redux 上下文中的 "Tearing"是什么?

javascript - 表达 CORS 子域

javascript - 使用 Tipsy 和 d3.js 的附加工具提示文本