如何强制将运行所有调整大小函数的resize事件

时间:2015-07-08 10:41:29

标签: javascript jquery css

我正在使用Masonry.js创建一个砖石风格的博客。问题是,当我点击“文章”时。例如,我的JS使一切都消失了。它们只是保持在相同的位置,而不是填充之前填充其他帖子类型的空白中的所有文章。

一旦我调整窗口大小,Masonry.js就会做到这一点,每一个空白都会被文章填满。我的问题是如何在不必手动调整窗口大小的情况下强制执行此操作?

注意:

我试过这个链接 Forcing windows resize to fire 这不起作用。

3 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:1)

这必须奏效(我现在正在使用它)

     $(window).trigger('resize');

希望这有帮助。

修改

请注意,这是jQuery语法。

编辑2

我对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函数并切换了一个类,它将所有内容弹回到正确的位置。

至于细节,我不太确定,因为这不是我的模块。如果有人有任何有价值的信息可以帮助他人,评论我会更新我的答案。谢谢大家。