使用 Masonry+ImagesLoaded 的 LazyLoad
LazyLoad with Masonry+ImagesLoaded
如何为我的 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 来实现,因为我没有特定的图像尺寸。我发现的所有解决方案都行不通
我使用 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();
});
如何为我的 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 来实现,因为我没有特定的图像尺寸。我发现的所有解决方案都行不通
我使用 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();
});