2012-01-28 2 views
13

誰でも、このサイトが反応性の高い流体レイアウトのためにjQuery Masonryプラグインをどのように使用しているかをお聞かせください。具体レスポンシブなメイソンjQueryレイアウトの例

http://tympanus.net/codrops/collective/collective-2/

ブラウザのサイズ変更で、列の数が3から2に1変わります。これは、masonryを使用しているサイトから期待されるものですが、興味深い点は、列がサイズ変更されて常に利用可能な全幅を満たすことです。私が見た他の多くの石積みのサイトでは、列の数が変わると(たとえば、http://masonry.desandro.com/)、列が幅いっぱいになりますが、列の数は同じままになります(http://masonry.desandro.com/demos/fluid.html)。彼らは動的にCSSのメディアクエリと組み合わせたブラウザのサイズ変更の列数を設定しているのでしょうか、CSS3の列を使用しているのでしょうか?

ありがとうございました。

+0

私はそれをしないので、私は同じことを見てはいけません:http://i.stack.imgur.com/08sMz.png私は彼らがちょうどアニメーション付きの標準的な石積みの例(見なかった)。あなたはいつでも自分自身でソースコードをチェックアウトすることができます... –

+0

OS X Lionでは、Chrome 17、Safari 5.1.2、またはFirefox 9.0.1を使用すると奇妙です。 http://cl.ly/DjIr。私はソースコードを見ていたが、それがどのように行われたかは分からなかった。 – robflate

答えて

16

これは私たちが見ているコードです。

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 = 1; 
      else if(w_w <= 768) n = 2; 
      else n = 3; 
     }, 
     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: 400 
        } 
       }); 
      }); 
      $ctCollContainer.colladjust(); 
      $ctCollContainer.find('div.ct-coll-item-multi').collslider(); 
     }; 
     return { init: init }; 
    })(); 
    CollManag.init(); 
}); 

基本的な考え方は、いくつの列を設定できるかを調べるcolumnselectorを追加することです。 2番目の手順は、関数内のsmartresize eventを使用することです。第3のステップは、列の「動的な」幅で石積みを呼び出すことです。楽しんでください:)

+1

ありがとうsome_guy、それは治療を働いた。私はちょうどいくつかのメディアクエリを追加して、.ct-coll-itemの最大幅を600と768に設定する必要がありました。 – robflate

+0

それがうまくいくことを知っておきましょう。それに私の注意を広告してくれてありがとう、私も同様のsthを探していたと私は今私のサイトにもこれを試して実装すると思います! –

+0

私のお尻を保存:D – PriteshJ