jQuery Isotope — Centered and Fluid/Responsive

前端 未结 3 1128
死守一世寂寞
死守一世寂寞 2020-12-29 12:33

I am asking a question about Isotope

It is a great plugin for jQuery.

I have been playing with it for a while now, but I don\'t know enough about javascript

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-29 12:47

    This jsfiddle will probably solve your problem: http://jsfiddle.net/schmidjon/6Z3sn/. It's a simple extension to Isotope with breakpoints:

    (function ($) {
    var $container = $('.example'),
        colWidth = function () {
            var w = $container.width(), 
                columnNum = 1,
                columnWidth = 0;
            if (w > 1200) {
                columnNum  = 5;
            } else if (w > 900) {
                columnNum  = 4;
            } else if (w > 600) {
                columnNum  = 3;
            } else if (w > 300) {
                columnNum  = 2;
            }
            columnWidth = Math.floor(w/columnNum);
            $container.find('.item').each(function() {
                var $item = $(this),
                    multiplier_w = $item.attr('class').match(/item-w(\d)/),
                    multiplier_h = $item.attr('class').match(/item-h(\d)/),
                    width = multiplier_w ? columnWidth*multiplier_w[1]-4 : columnWidth-4,
                    height = multiplier_h ? columnWidth*multiplier_h[1]*0.5-4 : columnWidth*0.5-4;
                $item.css({
                    width: width,
                    height: height
                });
            });
            return columnWidth;
        },
        isotope = function () {
            $container.isotope({
                resizable: false,
                itemSelector: '.item',
                masonry: {
                    columnWidth: colWidth(),
                    gutterWidth: 4
                }
            });
        };
        isotope();
        $(window).smartresize(isotope);
    }(jQuery));
    

    Source: Using jQuery Isotope for masonry in fluid layouts

提交回复
热议问题