2013-04-16 105 views
1

我在砌體佈局上使用gutterwidth的時候有一個很小但很刺激的問題。我在點擊函數中將內容附加到清除div(每行之後),然後重新加載砌體以將其包含在網格中。但小問題是,當點擊一個div時,似乎將容器的右側切掉一秒左右,這看起來像是一個錯誤,偶爾會使容器跳下來。
我注意到,當取出gutterwidth財產的jquery和取代它與margin-leftmargin-right風格這解決了這個問題,但我最好需要使用gutterwidths,因爲我將添加多個尺寸divs(包括100%寬度),所以我不要有任何差距。
這裏有一個的jsfiddle演示(看在容器的右側點擊一個div時):http://jsfiddle.net/SzK5F/5/
的jQuery:jQuery:砌體gutterwidth問題

$(document).ready(function() { 
    var $container = $('#block-wrap'); 

    $(function(){ 
     $container.imagesLoaded(function(){ 
      $('#block-wrap').masonry({ 
      itemSelector : '.content-block-small, .content-block-big, .listing-item, .preview-listing:not(.excluded)', 
      columnWidth: 3, 
      gutterWidth: 15, 
      isFitWidth: true, 
      isAnimated: true 
      }); 
     }); 
    }); 
}); 


$(document).ready(function() { 

    $(".listing-item").click(function() { 

     $('.listing-properties').hide(); 
     var previewForThis = $(this).nextAll('.preview-listing:first'); 
     var otherPreviews = $(this).siblings('.preview-listing').not(previewForThis); 
     otherPreviews 
      .addClass('excluded') // exclude other previews from masonry layout 
      .hide(); 
     previewForThis 
      .removeClass('excluded') 
      .append($('#property' + $(this).attr('hook')).show()) 
      .hide() 
      .delay(400) 
      .fadeIn("slow"); 
     setTimeout(function(){ 
      $('html, body').animate({ scrollTop: previewForThis.offset().top-20 }, "slow"); 
     }, 500); 
     $('#block-wrap').masonry('reload'); 
    }); 

}); 

這可能是東西真的很明顯,我的思念,也可能不在使用排水溝寬度時可以固定(希望它可以),但它只是有點刺激。

回答

0

問題的發生是因爲當你點擊一個塊來添加項目時,它正在將css元素overflow:hidden應用到id #block-wrap。如果將overflow:visible!important添加到css樣式中,它將解決此問題。

我已經完成了所有附加的.js文件和腳本的快速搜索,但是我找不到overflow:hidden正在被添加的位置......但我上面提到的css覆蓋似乎不會導致任何額外的問題。

這裏是一個fixed fiddle link.

#block-wrap { 
    position: relative; 
    width: 100%; 
    padding-top: 30px; 
    margin: 0 auto; 
    overflow:visible!important; 
} 
+0

完美!我知道這會是一件簡單的事情。歡呼你的幫助,非常感謝。 – user1374796