我正在使用Masonry.js创建一个砖石风格的博客。问题是,当我点击“文章”时。例如,我的JS使一切都消失了。它们只是保持在相同的位置,而不是填充之前填充其他帖子类型的空白中的所有文章。
一旦我调整窗口大小,Masonry.js就会做到这一点,每一个空白都会被文章填满。我的问题是如何在不必手动调整窗口大小的情况下强制执行此操作?
注意:
我试过这个链接 Forcing windows resize to fire 这不起作用。
答案 0 :(得分:2)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button>Fire event</button>
<span></span>
&#13;
SELECT DISTINCT LastName FROM Individuals
&#13;
答案 1 :(得分:1)
这必须奏效(我现在正在使用它)
$(window).trigger('resize');
希望这有帮助。
请注意,这是jQuery语法。
我对masonry.js进行了研究(我在这篇文章之前没有见过它),我认为你可以像这样解决这个问题:
$(window).on('resize', function () {
$('#element').masonry('reloadItems');
});
$(window).trigger("resize");
祝你好运
答案 2 :(得分:0)
我设法解决了这个问题。
$('#article-options li').on('click', function() {
setTimeout(function() {
var $grid = $('#blog-container').masonry({
columnWidth: 80
});
// change size of item by toggling gigante class
$(this).toggleClass('gigante');
// trigger layout after item size changes
$grid.masonry('layout');
}, 200);
});
每个&#39;部分&#39;我的博客中有一个叫做文章选项的ul,所以当点击一个选项(因此改变了)时,它会运行这个函数。
我设置了一个超时,因为JS运行有点落后,让我点击两次以运行代码。
我定义了一个新的砌体网格,我将其定义为包含所有帖子的整体博客容器。然后我有了代码,它识别了一个部分的click函数并切换了一个类,它将所有内容弹回到正确的位置。
至于细节,我不太确定,因为这不是我的模块。如果有人有任何有价值的信息可以帮助他人,评论我会更新我的答案。谢谢大家。