5

石積み (v3) コード:

$(function msnry(){
var columns = 3,
setColumns = function() { columns = $( window ).width() > 640 ? 3 : $(window).width() >    320 ? 2 : 1; };
setColumns();
$(window).resize(setColumns);

    // layout Masonry again after all images have loaded
    var $container = $('#portfoliocontent').masonry();
    var msnry;
    $container.imagesLoaded( function(){
    msnry = new Masonry( container, {
    itemSelector : '.item',
    columnWidth:  function( containerWidth ) { return containerWidth / columns;}
      });
});

私の石積みコンテナ (別名私のポートフォリオ)

<div id="portfoliocontent" class="portfoliocontainer"></div>

ここでの私の目標は、機能するクラス「designshwr」ですべての div を非表示にすることですが、石積みのリロードはまったく機能しません。

$('.engineeringiC').click(function(){
    if($('div.item').hasClass('designshwr')){
    $('div.item.designshwr').hide('fast');
    $('.portfoliocontainer').masonry('reloadItems');

}

助言がありますか?私は先週、それを機能させるためにさまざまな方法で頭を悩ませてきましたが、まだ運がありません:(

4

2 に答える 2

3

私は最終的に問題を完全に解決しました。

$(function msnry(){
var columns = 3,
setColumns = function() { columns = $( window ).width() > 640 ? 3 : $(window).width() >          320 ? 2 : 1; };
setColumns();
$(window).resize(setColumns);

// layout Masonry again after all images have loaded
var $container = $('#portfoliocontent').masonry();
var msnry;
$container.imagesLoaded( function(){
msnry = new Masonry( container, {
itemSelector : '.item',
columnWidth:  function( containerWidth ) { return containerWidth / columns;}
  });
});

var $container = $('#portfoliocontent') .masonry();

他の誰かがこの問題に遭遇した場合、それはおそらく、コンテナ変数に masonry の初期化を適用したことが原因です。それは今うまくいっています:)

于 2013-07-02T23:27:02.890 に答える
1

私は同じ問題に直面しました。私の解決策は効率的ではないかもしれませんが、今まで最適な解決策が得られたときはいつでもこれを使用しました。うまくいけば、これがあなたにも役立つことを試すことができます。

$('.engineeringiC').click(function(){
    var $container = $('#portfoliocontent').masonry();
    if($('div.item').hasClass('designshwr')){
    $('div.item.designshwr').hide('fast');
    //$('.portfoliocontainer').masonry('reloadItems');
    setTimeout(function(){ $container.masonry() }, 400);
}
于 2013-07-01T09:56:43.650 に答える