当以特定速度滚动时,砌体和无限滚动打破布局

时间:2011-01-27 22:30:01

标签: javascript jquery jquery-masonry infinite-scroll

我有一个流畅的宽度主题,我正在使用jQuery Masonry和Infinite Scroll。问题是如果你以一定的速度(不是太快而不是太慢)滚动页面,它可能会导致网格中断。我在Firefox中只看到了两个列:

screen layout

任何人都知道为什么会这样吗?我知道这可能是一些事情,但如果有人有这方面的经验并知道发生了什么,那将有很大帮助。

更新: 中断发生在页面上的最后一篇文章之后。接下来的是由无限滚动的回调生成的。

2 个答案:

答案 0 :(得分:2)

好吧,我无法看到您要查看的页面的链接(并且图片不可用),而是根据我过去的砌体经验,只要页面大小发生重大变化(重新调整大小,滚动,重新调整大小的div)你需要再次触发它:

jQuery(document).ready(function() {
    jQuery("#somediv").click(function() {
        jQuery('#leftcol').toggle(700); //div resizing start here
        jQuery('#somediv2').toggleClass("minside");
        jQuery('#somediv').toggleClass("full"); // evoke again after change..
        jQuery('#container').masonry({
            itemSelector : '.item',
            columnWidth : 240
        });
    });
});

答案 1 :(得分:0)

添加此作为无限卷轴的回调,你的问题将会消失......至少对我有用:

// trigger Masonry as a callback
function (newElements) {
    // hide new items while they are loading
    var $newElems = $(newElements).css({ opacity: 0 });
    // ensure that images load before adding to masonry layout
    $newElems.imagesLoaded(function () {
        // show elems now they're ready
        $newElems.animate({ opacity: 1 });
        $container.masonry('appended', $newElems, true);
    });

});

检查$container,以防您更改了它。