去除同位素js中的空白区域

时间:2016-11-02 19:34:40

标签: javascript css isotope

我的网格中的每个项目之间都有空格。 http://okbj.ca/如果您点击最近或调整窗口大小,它将删除空格。当你刷新空间回来。我怎样才能永久删除这个空间?

我正在使用最新版本的chrome,explorer,microsoft edge和firefox。它似乎不适用于所有这些。

enter image description here

2 个答案:

答案 0 :(得分:1)

这似乎是针对您的特定浏览器问题,因为它在OSX上的最新版本的Chrome,Firefox和Safari中显示正常。

enter image description here

Windows上出现问题。有两种解决方案。

丑陋的Javascript Hack

每秒触发一次调整大小事件。这将强制插件重新计算大小。

// cross-browser resize event
var crossBrowserResize = function() {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent('resize', true, false);
    window.dispatchEvent(evt);
};

// fire the event every second
setInterval(function() {
    crossBrowserResize();
}, 1000);

使用媒体查询

使用纯CSS和一些媒体查询可以轻松实现这种类型的网格。我检查了这些元素,他们已经在使用多个媒体查询来调整事件在不同断点处的调整大小。

/* 4 columns on tablet landscape and up */
@media screen and (max-width: 1024px) {
  .block {
    width: 25%;
  }
}

/* 2 columns on tablet profile */
@media screen and (max-width: 720px) {
  .block {
    width: 50%;
  }
}

/* 1 column on phone landscape or profile */
@media screen and (max-width: 480px) {
  .block {
    width: 100%;
  }
}

答案 1 :(得分:0)

您想要的崩溃仅发生在窗口调整大小事件(在Chrome中)。您可以在加载网格后调度事件:

(function fixGrid() {
  var img, grid = document.querySelector('.grid');
  if (grid) {img = grid.querySelector('img');}
  if (img && img.height) {
    window.dispatchEvent(new Event('resize'));
    grid.style.opacity = 1;
  } else {
    if (grid) {grid.style.opacity = 0;}
    setTimeout(fixGrid, 10);
  }
})();