php - jQuery Masonry 追加与无限滚动重叠

标签 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 会重叠图像......当图像存储在缓存中时,它可以完美运行,但否则...... 我该如何解决这个问题?

最佳答案

尝试将砌体调用包装在 .imagesLoaded() 中

$("#corpo").imagesLoaded(function(){
  $("#corpo").append($boxes).masonry('appended', $boxes, 'reloadItems');
});

编辑

根据Masonry Appendix “imagesLoaded 通过在加载所有子图像后触发回调来工作。”。因此,如果您运行,您会在此回调中触发 Masonry,它需要执行的所有操作都应该已经加载。

关于php - jQuery Masonry 追加与无限滚动重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18289522/

相关文章:

javascript - 使用 Google Maps API 时出现 "Uncaught ReferenceError: google is not defined"错误

javascript - 未捕获的 TypeError : arr. forEach 不是函数

javascript - 完全同时淡化两个元素

php - 如何以编程方式拉伸(stretch)图像?

php - 如何注册命名空间的自定义 View 助手?

javascript - 同一 block 元素一次可见和变量命名

javascript - jquery中图像之间的间隔

php - "ru_RU"(俄语)setlocale 在日期和时间上不起作用

php - 从数据库获取 "date"类型并添加秒数

javascript - AJAX 调用中返回的 JSON 不起作用