2

我正在尝试将Django Endless PaginationMasonry一起使用。

我一直遇到的问题是,砌体在第一页上工作得很好,但是当页面中填充新数据时,砌体不适用于新加载的元素。我考虑添加项目,但我认为在这种情况下这对我没有帮助。

那么,一旦加载了新元素,它们是一种重新初始化砌体的方法吗?

我只是想知道是否有其他人有类似的问题,是否有人有解决方案?

4

3 回答 3

4

如果有人有类似的问题,我终于找到了解决方案。我最终使用了.masonry('reload'). 在 never_on_scroll 之后,再次调用 reload 函数就更容易了。它可以解决问题!

于 2013-02-03T11:22:05.830 回答
1

Django-Endless-PaginationonCompleted在其设置中有一个回调。在那里,执行以下操作:

var masonry = $(myMasonryObject).data('masonry');
if (masonry !== undefined) {
    masonry.reloadItems();
    masonry.layout();
}
于 2013-10-06T17:57:17.777 回答
0

在上面的决定中,我发现了一些问题。当我滚动到页面末尾时,我看到了一些工件(项目相互叠加或在页脚上)。

我认为,这是因为我们在加载图像或其他东西之前调用了 masonry.reloadItems () 并且项目还没有它的实际大小。

此解决方案可以解决此问题:

 <script type="application/javascript">
    $.endlessPaginate({
      paginateOnScroll: true,
      paginateOnScrollMargin: 3840,
      onCompleted: function(context, fragment) {
        $(document).ready(function () {
            var gallery = $('.gallery');
            gallery.imagesLoaded(function () {
                var masonry = gallery.data('masonry');
                if (masonry !== undefined) {
                    masonry.reloadItems();
                    masonry.layout();
                }
            });
        });
      }
    });
  </script>
于 2017-11-03T10:33:20.050 回答