___K
___K
  • 发布:2016-11-06 11:58
  • 更新:2022-12-24 21:44
  • 阅读:7894

几行代码轻松实现瀑布流显示。

分类:MUI

实现思路:创建左右两个容器,在数据导入的时候获取两个容器的高度,把即将要导入的数据,导进高度低的一个容器即可。

HTML代码

<body style="background-color: #f3f3f3;">  
    <!-- 商品列表 -->  
    <div class="twoRankedBox">  
        <ul class="BoxLeft">  

        </ul>  

        <ul class="BoxRight">  

        </ul>  
    </div>  
</body>

CSS代码

*{  
    padding:0px;  
    margin:0px;  
    list-style: none;  
    font-style:normal;  
    font-family: arial;  
    font-family: Microsoft YaHei,arial;  
}  
.twoRankedBox{  
    margin:6px 8px;  
    overflow: hidden;  
    padding-bottom:25px;  
}  
.twoRankedBox ul{  
    width:49%;  
    float: left;  
}  
.twoRankedBox ul:last-child{  
    margin-left:2%;  
}  
.twoRankedBox ul li{  
    padding:5px;  
    margin-bottom:6px;  
    padding-bottom:8px;  
    background-color: #FFFFFF;  
}  
.twoRankedBox ul li p:first-child{  
    padding-top:0px;  
}  
.twoRankedBox ul li p{  
    padding-top:4px;  
}  
.product_picture img{  
    display: block;  
    width:100%;  
}  
.product_np{  
    overflow: hidden;  
    line-height:20px;  
}  
.product_np a{  
    display: block;  
    overflow:hidden;  
    text-overflow:ellipsis;  
    white-space:nowrap;  
}  
.product_np a:first-child{  
    font-size:0.9em;  
    color:#58b7e3;  
    width:65%;  
    float: left;  
}  
.product_np a:last-child{  
    font-size:0.8em;  
    color:#f00;  
    float: right;  
    width:35%;  
    text-align: right;  
}  
.product_ie{  
    font-size:0.8em;  
    color:#777;  
}

JS代码(需要JQ,因为获取高度是用JQ写的。可以自行修改)


//模拟JSON数据  
var json = {  
    data:[  
        {name:'花瓣小小裙花瓣',price:'128',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_01.jpg'},  
        {name:'时尚牛仔短裤',price:'298',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_02.jpg'},  
        {name:'白色婚纱',price:'668',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_03.jpg'},  
        {name:'绿色防晒衣',price:'218',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_04.jpg'},  
        {name:'格纹小短裙',price:'88',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_05.jpg'},  
        {name:'复古旗袍',price:'128',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_06.jpg'},  
        {name:'花瓣小小裙花瓣',price:'128',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_07.jpg'},  
        {name:'时尚牛仔短裤',price:'298',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_08.jpg'},  
        {name:'白色婚纱',price:'668',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_09.jpg'},  
        {name:'绿色防晒衣',price:'218',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_10.jpg'},  
        {name:'格纹小短裙',price:'118',details:'质量超好特别的舒适,夏天首选。',src:'images/temporary/img_11.jpg'}  
    ]  
}  

//模拟数据导入  
for(var i=0;i<json.data.length;i++){  
    var chtml = '<li><p class="product_picture"><img src="'+json.data[i].src+'"></p>'  
            +'<p class="product_np"><a>'+json.data[i].name+'</a><a>¥'+json.data[i].price+'</a></p>'  
            +'<p class="product_ie">'+json.data[i].details+'</p></li>'  

    if($('.BoxLeft').height() < $('.BoxRight').height()){  
        $('.BoxLeft').append(chtml);  
    }else{  
        $('.BoxRight').append(chtml);  
    }  
}  
11 关注 分享
DCloud_heavensoft Trust Float lhyh 麦冬果果 鹤 z_大白 杨婆婆管家家 Neil_HL conway 1***@qq.com

要回复文章请先登录注册

___K

___K (作者)

回复 1***@qq.com :
如果是服务端获取的数据,上传图片的时候可以存图片高度,不用等图片加载出来判断,直接拿服务端返回的图片高度对比就好了
2022-12-24 21:44
风云杭州

风云杭州

挺不错
2020-09-16 17:57
zhangdaren

zhangdaren

回复 zhangdaren :
已解决。
2018-10-10 15:06
zhangdaren

zhangdaren

楼主你的app叫什么名字啊? 我参照几份瀑布流,实现出来了,现在最底下的加载中没法显示出来,请教一下楼主怎么实现的?
2018-10-10 14:33
1***@qq.com

1***@qq.com

然而实际情况是 数据是后端请求来的 图片是远端的 for 执行很快 图片还没加载出来 for 早就执行完了, 所以最后的效果是 要嘛都在左边 要嘛都在右边
2017-12-07 13:38
轻盈的纸飞机

轻盈的纸飞机

回复 轻盈的纸飞机 :
还有在判断的时候要把=考虑进去,这里好像不能上图。我表达能力不行,不然的话截个图就能说明白了。
2017-07-12 11:19
轻盈的纸飞机

轻盈的纸飞机

这个瀑布流输出的图片顺序有问题,并没有按照左右ul的高度来排序,console了一下发现在谷歌浏览器用移动端测试中高度完全是错的,不知道输出的是什么玩意儿。在火狐的移动端测试中没有问题。总结:上真机测试发现问题1、图片并不是根据左右的高度(图片往高度低的那边排列)来排列的
2017-07-12 11:13
___K

___K (作者)

回复 PercyCJ :
http://ask.dcloud.net.cn/article/996
2016-12-26 20:03
PercyCJ

PercyCJ

mark,问下你这个底部导航栏怎么做的?
2016-12-22 10:32
道木樱花

道木樱花

为啥我的没反应呢
2016-11-30 09:36