微信小程序开发瀑布流解决方案
2019-01-16 22:28:44 清云网络 423
网上能搜到的小程序瀑布流解决方案,要么代码复杂、逻辑混乱,要么实现不了业务功能,所以把项目中的实现方案给大家分享下。 最简单的实现方案,不适用有分页的场景。 这个方案简单的原因是因为仅仅使用了css的属性。 .list-masonry { 注意,瀑布流的卡片需要css属性 display: inline-block; 将卡片设置为 内联元素。image 组件设置缩放模式 mode=widthFix 来保持图片宽高比。 column-count 属性默认是以列的形式来填充数据的。比如我们有20条数据,1 ~ 10 条数据会展示在左边第一列,11 ~ 20 条数据会展示在第二列。 通过自定义组件,用自己的思路实现瀑布流。然后在需要瀑布流的地方直接调用,方便复用。 没有Demo!! 跟着我的步骤一步一步来,就能轻松实现。 1.首先创建瀑布流自定义组件文件。 建议在项目根目录创建文件夹component,然后在该目录下创建文件夹WaterFallView,最后在WaterFallView下创建component。(鼠标右键->新建->Component)。 2.设计瀑布流的wxml。 瀑布流的结构简单,只有左右2列。所以在设计UI的时候,布局很简单。 左右两边,一边一个View。通过这两个View 来展示瀑布流的两列。每个View对应一个数据源,由此可见,这套思路的重点是这个两个数据源的处理。每个View中的template 为瀑布流中的卡片,就不介绍了。 css样式 具体实现逻辑 根据上面的 wxml 结构,这个组件的核心逻辑就是如何把要展示的数据item 放入leftList、rightList这两个数组中。 if (leftHight == rightHight) { //第1个item放左边 瀑布流展示图片的时候,需要知道图片的宽高,然后根据图片的宽高比来设置 image组件的宽高。所以如果你们的数据没有宽高或宽高比,很难实现瀑布流。虽然可以通过代码获得图片宽高,但会对性能以及用户体验有很大影响,不推荐这么做。可以和后台同学商量下,看如何加上宽高数据。 Component有自己生命周期方法,甚至可以象Page一样,当做一个单独的页面使用。可以在他的生命周期方法中获得到瀑布流的宽度,以及图片的最大高度。 拿到瀑布流的宽度后,就可以根据图片的宽高比,计算出 image 组件的宽高。 在template中,image的宽高需要声明下。单位是px,不是rpx 1.使用瀑布流 a. 注册自定义组件 在使用自定义组件的Page的json文件中声明要使用的组件 { .... usingComponents: { waterFallView: ../../component/WaterFallView/WaterFallView } } b. 在 wxml 中添加组件,并加上 id |
版权保护: 本文由 清云小程序 原创,转载请保留链接: http://www.0575yun.com/articledetail/id/47.html
【清云美妆】绍兴本地首款化妆品小程序分享,专业全面美观兼备,竟然还免费!
2019-08-09
绍兴小程序公司有哪些?电话是多少?
2019-08-18
绍兴定制小程序哪家好?绍兴小程序公司怎么选择?
2019-08-22
绍兴商城小程序制作分享
2019-08-23
绍兴麻将小程序制作分享
2019-08-24
绍兴旅游小程序分享
2019-08-25
小程序生产环境必须要购买腾讯云作为服务器吗?
2018-10-22
绍兴小程序价格,开发一个小程序要多少钱?
2019-08-06
绍兴美食小程序制作分享
2019-08-07
绍兴化妆品小程序开发,小程序为商家添彩!
2019-08-08
绍兴购物小程序分享
2019-08-12
【绍兴小程序价格】在绍兴开发一个小程序需要多少钱?
2019-08-15