2020-09-28

微信小程序模仿微信主页及页面跳转详解

主页wxml代码:

<view class="box {{currentindex===index?'hoverstyle':''}}" wx:for="{{data}}" bindtouchstart="startClick" bindtouchend="endClick" data-index="{{index}}">

  <view class="box1" catchtap="imageClick">

    <!-- <checkbox checked="{{item.isChecked}}"></checkbox> -->

    <image src="http://116.62.201.243:8080/wxxcx/{{item.image}}" data-key="{{item.goodsId}}" bindtap="clickHandler"></image>

    <view class="num" wx:if="{{item.price>99}}">99+</view>

    <view class="num" wx:else>{{item.price}}</view>

  </view>

  <view class="box2">

    <view class="box3">

      <view class="title">{{item.detail}}</view>

      <view class="time">{{item.upTime}}</view>

    </view>

    <view class="text">

      {{item.name}}

    </view>

  </view>

</view>


主页wxss代码:

.hoverstyle{

  background-color: khaki;

}

.age{color: blueviolet;}

.course{

  color: coral;font-weight: bolder;

}

/* image{

  width: 100vw;

  height: 100vh;

} */

.box{   

  margin-left: 10px;

  display: flex;

  flex-direction: row;

  /* background-color: darkorange; */


height: 180rpx;

width: 100%;}

.box image{

  border-radius: 10%;

  width: 120rpx;

  height: 130rpx;

margin-top: 10rpx;

}

.box1{

/* background-color: darkorchid; */

position: relative;

/* background-color: cornsilk; */

}

.box2 {width: 590rpx;

margin-left: 10px;

/* background-color: forestgreen; */

display: flex;

flex-direction: column;

border-width: 0 0 1px 0;

border-color: darkgray;

border-style: solid;

}

.text{

  overflow:hidden;

text-overflow:ellipsis;

white-space:nowrap;

}

.box3{

  width: 570rpx;

  margin-top: 15rpx;

  display: flex;

/* background-color: firebrick; */

justify-content: space-between;

flex-direction: row;

}

.title{


  font-size: 40rpx;

  /* background-color: crimson; */

  left: 0;

}

.time{

  color: darkgray;

  /* background-color: cyan; */

  width: 1ss00rpx;

 right: 10px;

}

.text{width: 450rpx;

  margin-top: 4px;

  font-size: 35rpx;

  color: darkgray;

}

.num{

  width: 45rpx;

  height:45rpx;

  background-color: crimson;

  border-radius: 50%;

  text-align: center;

  display: flex;

  justify-content: center;

  position: absolute;

  top: 0;

  right: 0;

}


主页js代码:

var currentPage = 1;

var currentindex = -1;

var isAllChecked = false;

var count = 60;

var id = 0 ;

Page({

  clickHandler: function (e) {

    console.log(e);

    console.log(e.currentTarget.dataset.key);

    console.log('clickHandler-----');

    var id = e.currentTarget.dataset.key;

    wx.navigateTo({

      url: '../user/regist/regist?id=' + id,

    })

  },

  startClick: function (event) {

    console.log(event)

    currentindex = event.currentTarget.dataset.index

    this.setData({

      currentindex: currentindex

    })

  },

  endClick: function () {

    this.setData({

      currentindex: -1

    })

  },

  allCheck: function () {

    isAllChecked = !isAllChecked

    var list = this.data.wx.sy;

    if (isAllChecked) {

      for(var i=0;i<list.length;i++){

        var item=list[i];

        item.isChecked=true;

        list.slice(i,1,item)

      }

    }

    this.setData({

      isAllChecked: isAllChecked,

      "wx:sy":list

    })

  },

  click: function () {

    var id = setInterval(() => {

      var percent = this.data.percent;

      percent++;

      this.setData({

        percent: percent

      })

      if (percent > 50) {

        clearInterval(id)

      }

    }, 1000)

  },

  sendclick: function () {

    if (count!=60) {

      return

    }

  id = setInterval(() => {

      count--

      this.setData({

        count: count + 's'

      })

      if (count===0) {

        clearInterval(id)

        count=60;

        this.setData({

          count: "发送"

        })

      }

    }, 1000)

  },

  onHide: function () {

    if (id=0) {

      return

    }

clearInterval(id)

  },

  onShow: function () {

    id = setInterval(() => {

      var percent = this.data.percent;

      percent++;

      this.setData({

        percent: percent

      })

      if (percent > 50) {

        clearInterval(id)

      }

    }, 1000)

  },

  /**

   * 页面的初始数据

   */

  data: {

    count: "发送",

    percent: 0,

    name: 'aaaa',

    num: {

      a: "3",

      b: "2",

      c: "4",

      d: "6"

    },

    classname: {

      banji: "一年一班",

      students: [{

          name: '张三',

          age: 20,

          course: [

            "语文", "数学", "英语"

          ]

        },

        {

          name: '李四',

          age: 19,

          course: [

            "语文", "数学", "英语"

          ]

        },

        {

          name: '王五',

          age: 21,

          course: [

            "语文", "数学", "英语"

          ]

        }

      ]

    },

    wx: {

      sy: [

      ]

    }

  },

  /**

   * 生命周期函数--监听页面加载

   */

  onLoad: function (options) {

  //   var list = [];

  //   for (let i = 0; i < 10; i++) {

  //     var obj = {

  //       id: i,

  //       img: "../img/wxq.jpg",

  //       num: i * 3,

  //       title: "王雪棋" + i + 1,

  //       content: "菲菲我放学去食堂",

  //       time: "9:00",

  //     }

  //     list.push(obj)

  //   }

  //  this.loadData();

  //   console.log(list)

  //   this.setData({"wx.sy":list})

     wx.request({

          url: 'http://116.62.201.243:8080/wxxcx/goods/getGoodsByPage',

          method: "POST",

          data: {

            page: 1,

            pageSize: 8

          },

          success: (res) => {

            console.log(res.data.data)

            this.setData({

              data: res.data.data

            })

  }

        })

  },

  onReachBottom: function () {

    // var prePage = currentPage;

    // currentPage++;

    // var list=this.data.wx.sy

    // var list=[];

    // for (let i = (prePage*10); i < (currentPage*10); i++) {

    //   var obj = {

    //     id: i,

    //     img: "../img/wxq.jpg",

    //     num: i * 3,

    //     title: "王雪琪" + (i+1),

    //     content: "菲菲我放学去食堂",

    //     time: "9:00",

    //   }

    //   list.push(obj)

    // }

    // console.log(list)

    // this.setData({"wx.sy":list})

     this.loadData();

  },

  onPullDownRefresh: function () {

    currentPage = 1;

  },

loadData:function(){

  var prePage = currentPage;

  currentPage++;

   wx.request({

                url: 'http://116.62.201.243:8080/wxxcx/goods/getGoodsByPage',

                method:"POST",

                data:{

                  page:2,

                  pageSize:8

                },

                success:(res)=>{

                  var data=this.data.data

                  console.log(data)

                  // console.log(res)

                  var data1=res.data.data

                  for(var i=0;i<data1.length;i++){

                    data.push(data[i])

                  }

                  console.log(data1)

                  this.setData({

                    data:data

                  })

                }

              })

},

  /**

   * 生命周期函数--监听页面初次渲染完成

   */

  onReady: function () {

  },

  /**

   * 生命周期函数--监听页面显示

   */


  /**

   * 生命周期函数--监听页面隐藏

   */


  /**

   * 生命周期函数--监听页面卸载

   */

  onUnload: function () {

  },

  /**

   * 页面相关事件处理函数--监听用户下拉动作

   */


  /**

   * 页面上拉触底事件的处理函数

   */


  /**

   * 用户点击右上角分享

   */

  onShareAppMessage: function () {

  }

})


app.js代码(用于点击头像跳转详情):

globalData: {

    userInfo: null,

host:"http://116.62.201.243:8080/wxxcx/"

  }

  ,

  studentDetails:[{

    gender:"male",

    id:2,

    img:"../../img/1.jpg",

    name:"星卡助手",

    wechatName:"星卡助手",

    wechatnumber:"meteorcard",

    address:"中国",

    lable:"公众号",

    circle:[

      "../../img/1.jpg","../../img/2.png","../../img/3.jpg"

    ]

  },

  {

gender:"male",

    id:1,

    img:"../../img/1.jpg",

    wechatName:"大学城颜值巅峰",

    wechatnumber:"123456",

    address:"中国",

    lable:"班级群",

    circle:[

      "../../img/1.jpg","../../img/2.png","../../img/3.jpg"

    ]

  }

]

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343