当窗口调整大小时,jQuery砌体布局正在破碎 - 流畅的无缝照片网格

时间:2012-03-06 19:01:48

标签: javascript jquery resize jquery-masonry window-resize

我发布了video来解释我的问题。 抱歉帧速率慢。

当我缩小窗口太快时,Masonry jQuery插件似乎太慢而无法跟上,因此当浏览器调整太快时会破坏布局。有些项目属于页脚,看起来显然是错误的。

当我重新加载页面时,如视频中所示,布局恢复正常。

我认为问题在于smartresize

以下是演示页面: http://test.davewhitley.com/not-wp/isotope_test/index.php

此页面成功完成: http://tympanus.net/codrops/collective/collective-2/

javascript:

jQuery(document).ready(function($) {
var CollManag = (function() {
    var $ctCollContainer = $('#ct-coll-container'),
    collCnt = 1,
    init = function() {
        changeColCnt();
        initEvents();
        initPlugins();
    },
    changeColCnt = function() {
        var w_w = $(window).width();
        if( w_w <= 600 ) n = 2;
        else if( w_w <= 768 ) n = 3;
        else n = 4;
    },
    initEvents = function() {
        $(window).on( 'smartresize.CollManag', function( event ) {
            changeColCnt();
        });
    },
    initPlugins = function() {
        $ctCollContainer.imagesLoaded( function(){
            $ctCollContainer.masonry({
                itemSelector : '.ct-coll-item',
                columnWidth : function( containerWidth ) {
                    return containerWidth / n;
                },
                isAnimated : true,
                animationOptions: {
                    duration: 300
                }
            });
        });
        $ctCollContainer.colladjust();
        $ctCollContainer.find('div.ct-coll-item-multi').collslider();
    };
    return { init: init };
})();
CollManag.init();
});

2 个答案:

答案 0 :(得分:3)

我有同样的问题。我在windows resize上使用了bindResize。我在他们的网站上找到了这个解决方案

Masonry Methods

bindResize位于masonry.pkgd

$container.masonry({
    itemSelector: '.container'
});

$(window).resize(function () {
    $container.masonry('bindResize')
});

答案 1 :(得分:0)

顺便说一句好工作。

在某些方面,是的,布局有点疯狂。当然这只是浏览器处理百分比宽度+砌体的方式。下面的小小提示:

让你的容器变小,但你的图像更大。

.mycontainer {width:24%; ) .mycontainer img {width:101%;身高:自动; )

http://metafizzy.co/blog/beyonce-seamless-fluid-image-masonry/

相关问题