首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LazyLoad与Masonry+ImagesLoaded

LazyLoad与Masonry+ImagesLoaded
EN

Stack Overflow用户
提问于 2021-07-08 23:21:43
回答 1查看 217关注 0票数 0

如何将LazyLoad实现到masonry+ImagesLoaded布局?我有一个代码

代码语言:javascript
复制
<div class="masonry">
  <div class="masonry-sizer"></div>
    <div class="masonry-item">
        <img class="masonry-content" src="image1.png">
    </div>
</div>

JS

代码语言:javascript
复制
var $masonry = $('.masonry').masonry({
  itemSelector: '.masonry-item',
  percentPosition: true,
  masonry: {
    columnWidth: '.masonry-sizer'
  }
});
$masonry.imagesLoaded().progress( function() {
  $masonry.masonry('layout');
});

而且我无法让它与任何LazyLoad插件一起工作。问题是它必须用imagesLoaded实现,因为我没有特定的图像维度。我找到的所有解决方案都行不通

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-12 08:17:17

我使用的是LazySizes插件,而不是imagesLoaded,但它现在的工作原理是正确的

代码语言:javascript
复制
<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

代码语言:javascript
复制
$('.masonry').each(function(){
  var $module = $(this);
  var update = function(){
    $module.masonry('layout');
  };

  this.addEventListener('load', update, true);

  $module.masonry();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68309575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档