- // pages/discover/waterfall_flow/waterfall_flow.js
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- dataList: [], //数据源
- windowWidth: 0, //页面视图宽度
- windowHeight: 0, //视图高度
- imgMargin: 6, //图片边距: 单位px
- imgWidth: 0, //图片宽度: 单位px
- topArr: [0, 0], //存储每列的累积top
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- wx.showLoading({
- title: '加载中...',
- })
- var that = this;
- //获取页面宽高度
- wx.getSystemInfo({
- success: function (res) {
- console.log(res)
- var windowWidth = res.windowWidth;
- var imgMargin = that.data.imgMargin;
- //两列,每列的图片宽度
- var imgWidth = (windowWidth - imgMargin * 3) / 2;
- that.setData({
- windowWidth: windowWidth,
- windowHeight: res.windowHeight,
- imgWidth: imgWidth
- }, function () {
- that.loadMoreImages(); //初始化数据
- });
- },
- })
- },
- //加载图片
- loadImage: function (e) {
- var index = e.currentTarget.dataset.index; //图片所在索引
- var imgW = e.detail.width, imgH = e.detail.height; //图片实际宽度和高度
- var imgWidth = this.data.imgWidth; //图片宽度
- var imgScaleH = imgWidth / imgW * imgH; //计算图片应该显示的高度
-
- var dataList = this.data.dataList;
- var margin = this.data.imgMargin; //图片间距
- //第一列的累积top,和第二列的累积top
- var firtColH = this.data.topArr[0], secondColH = this.data.topArr[1];
- var obj = dataList[index];
- obj.height = imgScaleH;
- if (firtColH < secondColH) { //表示新图片应该放到第一列
- obj.left = margin;
- obj.top = firtColH + margin;
- firtColH += margin + obj.height;
- }
- else { //放到第二列
- obj.left = margin * 2 + imgWidth;
- obj.top = secondColH + margin;
- secondColH += margin + obj.height;
- }
- this.setData({
- dataList: dataList,
- topArr: [firtColH, secondColH],
- });
- },
- //加载更多图片
- loadMoreImages: function () {
- var imgs = [
- 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1409185525,4059560780&fm=26&gp=0.jpg',
- 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4076355782,2436939971&fm=15&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=777075993,2126273204&fm=11&gp=0.jpg',
- 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=57777155,3251523579&fm=11&gp=0.jpg',
- 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3825727093,2830650732&fm=11&gp=0.jpg',
- 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2379065095,654347953&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2749679283,2472217536&fm=11&gp=0.jpg',
- 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=677128138,409184861&fm=11&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1884091074,3049103326&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1600363417,3661952978&fm=11&gp=0.jpg',
- 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2069544162,3090555174&fm=11&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3328655038,3143543956&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3953624046,2332872335&fm=26&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=717009955,687560133&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=4243037288,2388509769&fm=26&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2644451528,4180971732&fm=26&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2658655215,924706045&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=400545645,1325440240&fm=26&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2735743532,3162562682&fm=11&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2357555025,1781222560&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1604156508,3282489713&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=380663325,2271064034&fm=26&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=174537541,3462862985&fm=26&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1752649241,364583051&fm=26&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2890516059,4166188770&fm=27&gp=0.jpg',
- 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=2435144503,200941795&fm=11&gp=0.jpg',
- 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=877833827,2847590581&fm=26&gp=0.jpg',
- 'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=894452177,2810600152&fm=11&gp=0.jpg',
- 'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=4053642431,248486335&fm=27&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2914607659,905736210&fm=11&gp=0.jpg',
- 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1629456501,1514429218&fm=26&gp=0.jpg',
- ];
- var tmpArr = [];
- for (let i = 0; i < 22; i++) {
- var index = parseInt(Math.random() * 100) % imgs.length;
- var obj = {
- src: imgs[index],
- height: 0,
- top: 0,
- left: 0,
- }
- tmpArr.push(obj);
- imgs.splice(index, 1);
- }
- var dataList = this.data.dataList.concat(tmpArr)
- this.setData({ dataList: dataList }, function(){
- wx.hideLoading()
- });
- },
- /**预览图片 */
- previewImg: function (e) {
- var index = e.currentTarget.dataset.index;
- var dataList = this.data.dataList;
- var currentSrc = dataList[index].src;
- // var srcArr = dataList.map(function (item) {
- // return item.src;
- // });
- wx.previewImage({
- urls: [currentSrc],
- })
- },
- })