【问题标题】:LazyLoad with Masonry+ImagesLoadedLazyLoad 与 Masonry+ImagesLoaded
【发布时间】:2021-09-19 09:20:40
【问题描述】:

如何在 masonry+ImagesLoaded 布局中实现 LazyLoad? 我有代码

HTML

<div class="masonry">
  <div class="masonry-sizer"></div>
    <div class="masonry-item">
        <img class="masonry-content" src="image1.png">
    </div>
</div>

JS

var $masonry = $('.masonry').masonry({
  itemSelector: '.masonry-item',
  percentPosition: true,
  masonry: {
    columnWidth: '.masonry-sizer'
  }
});
$masonry.imagesLoaded().progress( function() {
  $masonry.masonry('layout');
});

而且我无法让它与任何 LazyLoad 插件一起使用。问题是它必须使用 imagesLoaded 来实现,因为我没有特定的图像尺寸。我发现的所有解决方案都不起作用

【问题讨论】:

    标签: javascript html lazy-loading masonry imagesloaded


    【解决方案1】:

    我使用 LazySizes 插件制作了这个,虽然没有加载图像,但它现在应该可以工作

    HTML

    <div class="masonry">
      <div class="masonry-sizer"></div>
        <div class="masonry-item">
            <img class="masonry-content lazyload" src="low_quality_image1.png" data-src="image1.png">
        </div>
    </div>
    

    JS

    $('.masonry').each(function(){
      var $module = $(this);
      var update = function(){
        $module.masonry('layout');
      };
    
      this.addEventListener('load', update, true);
    
      $module.masonry();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多