1

古いコードと新しいコードを組み合わせましたが、一部の投稿がまだ重複しているため、正しく機能しません。解像度が小さいとオーバーラップしない可能性があるため、ここに画像があり、サイトはここにあります。

情報源:

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-infinitescroll/2.0b2.120519/jquery.infinitescroll.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/masonry/3.1.2/masonry.pkgd.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/3.0.4/jquery.imagesloaded.min.js"></script>

そしてコード:

$(window).load(function () {
    var $container = $('#posts');
$container.masonry(),
$container.infinitescroll({
navSelector : "div.navigation",
// selector for the paged navigation (it will be hidden)
nextSelector : ".navigation a#next",
// selector for the NEXT link (to page 2)
itemSelector : ".entry",
// selector for all items you'll retrieve
bufferPx : 10000,
extraScrollPx: 10000,
loadingImg : "http://static.tumblr.com/bcpenwm/o5Nmy3k0o/florels.gif",
loadingText : "<em></em>",
},
// call masonry as a callback.
  function( newElements ) {
            // hide new items while they are loading
            var $newElems = $( newElements ).css({ opacity: 0 });
            // ensure that images load before adding to masonry layout
            $newElems.imagesLoaded(function(){
                // show elems now they're ready
                $newElems.animate({ opacity: 1 });
                $container.masonry( 'appended', $newElems, true );
            });}
);
});
4

2 に答える 2

0

あなたのコードは問題ありません。問題は tumblr の photoset 変数にあります。Tumblr は iframe を生成し、Masonry はその高さを取得してスペースを空けることができません。代わりに、Pixel Union の拡張フォトセットのようなものを使用してください。これにより、写真セットが画像として読み込まれ、石積みはそれらの高さを取得できるようになります。

于 2017-04-09T00:16:34.203 に答える