2014-11-18 4 views
0

이것은 많은 사람들이 가지고 있었고 수정할 수있는 것처럼 보이는 일반적인 문제인 것으로 보이지만 내 경우에는 해결책이 전혀없는 것 같습니다.벽돌 무한 스크롤 겹쳐진 div

페이지가 완벽하게로드되지만 스크롤과 더 많은 브릭이 추가 될 때 오버랩이 발생합니다. 또한, 이것은 처음 페이지에 착륙했을 때만 발생하는 것으로 보입니다. 모든 항목이 이미로드 된 후 새로 고침하면 아래로 스크롤 할 때 겹침이 없습니다. 나는 imagesLoaded라고 생각했다.는 이것을 처리 할 예정 이었지만 atm은 작동하지 않았다. 내가 어디로 잘못 갔는지 모르겠다. 참고로

, 여기에 페이지입니다 나는이 문제 데 여기서 http://isaacprice.me/blog/ 여기

내 코드가 지금의 모습입니다 :

<script> 

    jQuery(function($) { 
     var $container = $('#all_posts'); 

     $container.imagesLoaded(function() { 
     var $msnry = $container.masonry({ 
       columnWidth: 240, 
       gutter: 20, 
       itemSelector: '.item', 
       "isFitWidth": true 
      }); 
     }); 

     $container.infinitescroll(
     // trigger Masonry as a callback 
     function(newElements) { 
      // hide new items while they are loading 
      var $newElems = $(newElements).hide(); 
      // ensure that images load before adding to masonry layout 
      //$newElems.imagesLoaded(function(){ 

      // show elems now they're ready 


      $msnry.append($newElems).delay(500).imagesLoaded(function() { 
       $newElems.fadeIn(); 
       $container.isotope('appended', $newElems); 
       //$msnry.append($newElems).masonry('appended', $newElems, true); 
      //$container.masonry('appended', $newElems, true); 
      }); 
      //}); 
     } 
    ); 
    }); 
    </script> 

당신은 내가 주석 한 라인에서 볼 수 있듯이 요소가 겹치지 않도록 여러 변형을 시도했습니다. 불운. 나는 똑같은 정확한 문제를 내가이 글을 써 보았을 때마다 얻는다.

도움이 될 것입니다.

답변

0

혼합 벽돌과 동위 원소. 당신은 벽돌로 처음에로드 한 후이 같은 infinitescroll와 동위 원소를 호출

$msnry.append($newElems).delay(500).imagesLoaded(function() { 
      $newElems.fadeIn(); 
      $container.isotope('appended', $newElems); //WRONG!! 
      //$msnry.append($newElems).masonry('appended', $newElems, true); 
     //$container.masonry('appended', $newElems, true); 

이 대신보십시오 : 응답 @Macsupport에 대한

$container.imagesLoaded(function() { 
      $newElems.fadeIn();   
     $container.masonry('appended', $newElems, true); 
+0

감사합니다. 불행히도 나는 이미 같은 것을 시도했다. 사실, $ container.isotope()에 대한 호출 아래의 주석 처리 된 행에서 이미 그 부분을 살펴 보았습니다. 줄을 주석으로 처리하면 $ container.isotope ('appended', $ newElems); 그리고 줄의 주석 처리를 제거하십시오 : $ container.masonry ('appended', $ newElems, true); 나는 여전히 같은 결과를 얻고있다. – codeguerrilla

+0

서로 교환하여 사용할 수 없습니다. 사이트에 masonry.js가 있으므로 동위 원소 호출이 아니라 masonry.js를 사용해야합니다. 게다가 다른 코드가로드되어 있습니다 (masonry-isotope.js). 이전에는 석조 후로드해야합니다. 더 많은 코드를 보여줘야합니다. jsfiddle을 만드십시오. – Macsupport

+0

나는 심지어 isotope()에 대한 호출을 사용했다. 원래는 내 코드의 일부가 아니 었습니다. 내가 말했듯이 $ container.isotope() 대신 $ container.masonry()를 사용할 때조차 전혀 작동하지 않습니다. 내가 시간이있을 때 나는 바이올린을 만들 것이다. 그러나 나는 그것이 문제인 것이라고 생각하지 않을 것이다. 또한 그것은 내 모든 코드입니다. 더 많은 코드가 필요합니까? HTML? 나는 또한 문제가있는 온라인 페이지에 연결했다. 모든 코드도 거기에 있습니다. 당신의 도움을 주셔서 감사합니다. – codeguerrilla