博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个女装小程序的瀑布流实现
阅读量:6983 次
发布时间:2019-06-27

本文共 1479 字,大约阅读时间需要 4 分钟。

最近在写的一个小程序 (****)要用到瀑布流,效果如下:

事先对市面上几款app还有小程序进行了一些调研

  • 小红书
  • 熊猫TVapp
  • 淘宝app
  • ...

移动端的瀑布流页面主要是两类:

  1. 无序的,瀑布流的内容相对随机,看不出明显的先后关系(指的是逻辑上的),比如小红书的瀑布流
  2. 有序的,分数高的在前面,分数低的在后面。

瀑布流布局的两个明显的特征(名词)

  1. 瀑布流由列构成(column)
  2. 列内的每一项高度不固定;

由此 小程序端可以这么写

wxml

复制代码

js

let col1H = 0;let col2H = 0;Page({  data: {    scrollH: 0,    images: [],    col1: [],    col2: [],  },  onLoad: function () {    wx.getSystemInfo({      success: (res) => {        let ww = res.windowWidth;        let wh = res.windowHeight;        let scrollH = wh;        this.setData({          scrollH: scrollH        });        this.loadImages();      }    })  },  onImageLoad: function (e) {    let oImgW = e.detail.width;         //图片原始宽度    let oImgH = e.detail.height;        //图片原始高度    let images = this.data.images;    let item = e.currentTarget.dataset.item;    let col1 = this.data.col1;    let col2 = this.data.col2;    if (col1H <= col2H) {      col1H += oImgH ;      col1.push(item);    } else {      col2H += oImgH;      col2.push(item);    }    let data = {      col1: col1,      col2: col2    };    this.setData(data);  },  loadImages: function () {     //这里加载图片  },})复制代码

wxss

.container {  display:flex;}.container .column {  width:48%;  margin:1%;}复制代码

想法

瀑布流的实现有很多方式,还有一种很常用的方式就是定位布局,动态计算需要可展示的列以及内容的位置,大家可以去看看花瓣网的布局,这里就不展开了。小程序的话,采用以上方法应该是相对比较简便的。拓展起来也很方便

参考文章

转载地址:http://xoxpl.baihongyu.com/

你可能感兴趣的文章
linux下svn迁移
查看>>
android studio下NDK开发
查看>>
SpringBoot基础篇配置信息之配置刷新
查看>>
第十一天:find
查看>>
golang sync WaitGroup
查看>>
使用graphite和grafana进行应用程序监控
查看>>
github推送错误:已经有此代码,不允许覆盖的解决方法
查看>>
C#MysqlHelper
查看>>
SpringMVC Hello World 实例
查看>>
MySQL BETWEEN 用法
查看>>
vim开启自动缩进
查看>>
【转】js之iframe子页面与父页面通信
查看>>
java设计模式_模版模式
查看>>
摄像机平滑更随脚本
查看>>
Struts2 标签配置详细
查看>>
需求管理工具比较 Doors_Requistie Pro_RDM
查看>>
centos+php+nginx的php.ini无法加载的问题
查看>>
从菜鸟到专家的五步编程语言学习法
查看>>
RequestQueue
查看>>
Android TextView 属性设置
查看>>