masonary等を扱えるmuuriと遅延読み込みを行えるlazysizesでpintereset風のサイトにする。
infinite scrollを使わずに画像を遅延読み込みにするのがミソ。
またmuuriとlazysizesはMIT Licenseなのもよい。
<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/4.0.1/lazysizes.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/muuri/0.5.3/muuri.min.js"></script> <div id="container" class="large-12 columns transitions-enabled large-centered clearfix"> <img class="img-rounded lazyload" src="no_image.png" data-src="test1.png"> <img class="img-rounded lazyload" src="no_image.png" data-src="test2.png"> <img class="img-rounded lazyload" src="no_image.png" data-src="test3.png"> </div> <script> $(window).load(function(){ lazySizesConfig.loadMode = 1; var grid = new Muuri('#container'); document.addEventListener('lazyloaded', function(e){ grid.refreshItems().layout(); }); }); </script>
さすがにアイテム数が増えすぎるとmuuriが処理しきれなくなる。