jQuery插件实现瀑布留布局masonry + infinitescroll 图片高度处理

jQuery插件实现瀑布留布局masonry + infinitescroll 。 使用官方的示例代码实际测试发现,当上传到服务器的时候,由于图片下载速度问题,导致图片高度不能被正确识别,从而造成层的重叠。 解决方法就是使用imagesLoaded加载。

    var $container = $('#flow');
    $('#flow').imagesLoaded(function(){
        $('#flow').masonry({
            itemSelector: '.box',
            gutterWidth: 20,
            columnWidth: 238
        });
    });

这样解决了第一次加载时候的问题,但是当异步请求之后加载的图片仍然无法正确的获取高度,解决的办法就是先将下载的图片隐藏,等图片下载完毕后再使用masonry渲染。代码如下:

    $('#flow').infinitescroll({
        loading     : {
            msgText        : "<em>正在加载</em>",
            img: "http://www.infinite-scroll.com/loading.gif",
            finishedMsg : "<em>木有了哦...</em>"
        },
        navSelector : "#plist",
        nextSelector: "#plist a",
        itemSelector: ".box",
        pixelsFromNavToBottom: 100,
        animate: true
    },function(newElements) {
     //先隐藏
var $newElems = $( newElements ).css({ opacity: 0 }); $newElems.imagesLoaded(function(){
      //图片显示后再进行masonry渲染 $newElems.animate({ opacity:
1 }); $container.masonry( 'appended', $newElems, true ); }); });

这样就很好的解决了图片加载的问题。

转载于:https://www.cnblogs.com/aleafo/p/3695816.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值