0

我有一个网站,使用引导程序和我用砖石创建的新闻,我使用了 Infinite Ajax Scroll,它在不同的 div 中调用其他新闻,而不是预先默认。然而,很多时候,如果一个人快速滚动页面,或者如果你的连接速度很慢,元素会重叠并且不会返回它们的位置,我认为这是因为它无法加载图像。我试图集成Imagesloaded,但它似乎无法正常工作......而且我不知道该怎么做......这是我继续进行的源代码,HTML:

<div class="row masonry_base altre">
  {$news}
</div>

<div class="row masonry altre">
  <div class="col-lg-4 col-md-6 col-xs-12 post-grid">
    {$news_scroll}
  </div>
</div>

JS:

<script>
(function($) {
"use strict";

  var $container = $('.masonry_base');
  $($container).imagesLoaded( function(){
    $($container).masonry({
      itemSelector: '.post-grid',
      columnWidth: '.post-grid'
    });
  });
})(jQuery);
</script>

<script type="text/javascript">
  var container = document.querySelector('.masonry');
  var msnry = new Masonry( container, {
    itemSelector: '.post-grid',
        gutterWidth: 20
  });
msnry.reloadItems()
    var $container = $('.masonry');
    $($container).imagesLoaded( function(){
        $($container).masonry({
            itemSelector: '.post-grid',
            columnWidth: '.grid',
            gutterWidth: 20
        });
    });


  var ias = $.ias({
    container: ".masonry",
    item: ".post-grid",
    pagination: "#pagination",
    next: ".next a",
    delay: 1200
  });

  ias.on('render', function(items) {
    $(items).css({ opacity: 0 });
  });

  ias.on('rendered', function(items) {
    msnry.appended(items);
  });

  ias.extension(new IASSpinnerExtension());
  ias.extension(new IASNoneLeftExtension({
        html: '<div class="btn btn-info btn-block btn-icon-left ias-noneleft" style="text-align:center"><p><em>No news</em></p></div>'
    }));
</script>
4

1 回答 1

1

这段代码:

$($container).imagesLoaded( function(){
    $($container).masonry({
        itemSelector: '.post-grid',
        columnWidth: '.grid',
        gutterWidth: 20
    });
});

仅适用imagesLoaded于执行时发生的任何$container事情。它不适用于动态添加的内容。您应该再次调用此函数来添加动态内容。也许在你的rendered回调中。

此外,您应该msnry.layout()在图像加载后调用调整内容(无需$.masonry再次调用)

希望能帮助到你

于 2016-05-15T23:50:47.650 回答