jQuery Masonry附加无限滚动重叠

时间:2013-08-17 13:49:43

标签: php javascript jquery ajax

所以,我有这个允许无限滚动的脚本:

$(document).ready(function() {
        function last_id_funtion() {
            var ID = $(".elemento:last").attr("id");
            $.post("2HB.php?action=get&id=" + ID,
                    function(data) {
                        if (data != "") {
                            var $boxes = $(data);
                            //$(".elemento:last").after(data);
                            $("#corpo").append($boxes).masonry('appended', $boxes, 'reloadItems');

                        }
                    });
        };

        $(window).scroll(function() {
            if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                last_id_funtion();
            }
        });

它基于2个查询,一个用于前10个结果,另一个用于其余查询。 问题是Masonry重叠图像直到页面刷新完成...当图像存储在缓存中时,它完美地工作,但不是...... 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

尝试在.imagesLoaded()

中包裹您的砌体调用
$("#corpo").imagesLoaded(function(){
  $("#corpo").append($boxes).masonry('appended', $boxes, 'reloadItems');
});

修改

根据Masonry Appendix “imagesLoaded通过在加载所有子图像后触发回调来工作。”。因此,如果你运行你在这个回调中触发Masonry它需要做的一切都应该已经加载了。