2013-04-05 2 views
0

jQuery Masonry를 사용하여 반응 형 그리드를 개발하고 있습니다. 나는 단순한 CSS 비례 그리드를 사용하고 있으며, 모든 것이 잘 동작한다 (수레가 수직으로 움직이지 않는다는 사실 외에는). 벽돌을 추가하는 순간에이 레이아웃이 깨집니다.jQuery 벽돌이 특정 폭에서 무작위로 끊어짐

$(document).ready(function() { 

    // select container 
    var $work = $(".work"); 

    // set columns based on window width 
    var columns = 3, 
     setColumns = function() { columns = $(window).width() > 768 ? 3 : 2; }; 

    $work.imagesLoaded(function() { 
     $work.masonry({ 
      itemSelector: '.project', 
      columnWidth: function(containerWidth) { 
       return containerWidth/columns; 
      } 
     }); 

     $(window).on('resize', function() { 
        // set columns now that the browser width is different. 
      setColumns(); 
      $work.masonry('reload'); 
     }).resize(); 
    }); 
}); 

문제를 보여주는 jsfiddle은 here입니다.

768px 중단 점 이상에서는 모든 것이 작동하지만 (깜박임이 많음에도 불구하고) 중단 점 아래에서는 두 열이 하나가되어야합니다.

수정 나는 시도했다 : columnWidth의 설정

  • 1에 사파리와 파이어 폭스에서 수정을, 그러나 크롬을.
  • 열 중 하나의 너비를 49 % 대신 47.5 %로 설정합니다 (2 % 여백 하나를 차지함). 그러나 그리드가 시각적으로 정렬되지 않습니다.

너비와 여백이 너무 조금 이상하다고 생각되지만 코드를 철저히 검사 했으므로 숫자가 100 % 너비까지 합쳐져야합니다. 그것은 벽돌이 들어올 때에 만 부서집니다.

생각하십니까? 어떤 도움이라도 대단히 감사하겠습니다.

+0

내가 전에 벽돌을 볼 수없는 것 : 여기 데모입니다. 그와 견고한 사례를 만들어 주셔서 감사합니다! 풍자는 제쳐두고, 이것은 트위터 부트 스트랩에서 꽤 쉬울 것입니다, 당신은 두 제품을 나란히 평가 했습니까? –

답변

1

여백을 0으로 설정하면 벽돌이 모두 맞아야합니다.

http://jsfiddle.net/uMgwm/1

/* basic grid structure */ 
.half, .third, .two-third, .quarter { 
    float: left; 
    margin: 0; 
} 
    .two-third + .third, .third:nth-child(3n+0), .quarter:nth-child(4n+0) { 
     margin: 0 0 0 0; 
    } 
    .half:nth-child(2n+0), .third:nth-child(3n+0), .quarter:nth-child(3n+0) { 
     margin-right: 0; 
    } 
+0

하하. 생각 해봤는데. 전체 너비의 사진을 줄 때 문제가 발생하지만 '너비 : 98 %'로 설정하면 문제를 해결할 수 있습니다. 감사! –

+0

문제 없습니다. 석조 틀 옵션을 사용할 수도 있습니다. http://masonry.desandro.com/docs/options.html#gutterwidth – lucuma

관련 문제