麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

微信小程序實現購物頁面左右聯動

2020-03-21 16:01:53
字體:
來源:轉載
供稿:網友

本文實例為大家分享了微信小程序實現購物頁面左右聯動的具體代碼,供大家參考,具體內容如下

效果圖:

微信小程序,左右聯動

wxml

<view class="pro-container"> <scroll-view class="left-menu" scroll-y scroll-with-animation="true" scroll-top="{{leftMenuTop}}">  <view class="menu-item {{index===currentActiveIndex?'menu-active':''}}" wx:for="{{item}}" wx:key="{{item.index}}" id="{{index}}" catchtap='changeMenu' >{{item.typename}}</view> </scroll-view> <scroll-view v-if="item!=''" class="right-pro" bindscroll = "scroll" scroll-y scroll-with-animation="true" scroll-top="{{rightProTop}}">  <view class="pro-item" wx:for="{{item}}">    <view class="item-header">{{item.typename}}</view>    <view class="pro-item-container">      <view wx:for="{{item.shop_goods}}" wx:key="{{index}}" class="pro-item-item">       <image lazy-load="true" src="{{item}}"></image>      <text>{{item.goodname}}</text>     </view>    </view>  </view> </scroll-view></view>

wxss

.left-menu{ position: absolute;  top: 0;  left: 0;  bottom: 0;  right: 0;  width: 180rpx;  background-color: #f8f8f8;  font-size: 32rpx;}::-webkit-scrollbar{ width: 0; height: 0; color: transparent;}.left-menu .menu-item{ width: calc(100% - 16rpx); height: 80rpx; padding:0 8rpx; line-height: 80rpx; text-align: center;}.left-menu .menu-item.menu-active{ border-left:8rpx solid red; padding-left: 0; background-color: #fff;} /* 右邊商品區域 */.right-pro{ position: absolute; left: 180rpx; top:0; bottom: 0; width:calc(100% - 180rpx); background-color: #fff;  display: flex; overflow: hidden;}.right-pro .pro-item{ padding:20rpx;}.right-pro .item-header{ display: inline-block; font-size: 30rpx; line-height: 40rpx; color: #fff; background-color: red; padding:0rpx 30rpx;  margin: 10rpx auto;}.right-pro .pro-item-container{ font-size: 28rpx;}.pro-item-item{ width: calc((100% - 180rpx) / 2 ); display:inline-block; }.right-pro .pro-item-container image{ width: 100rpx; height: 100rpx; display: block; margin: 0 auto;}.right-pro .pro-item-container text{ display: block; text-align: center;}

wxjs

let proListToTop = [], menuToTop = [], MENU = 0, windowHeight,timeoutId;// MENU ==> 是否為點擊左側進行滾動的,如果是,則不需要再次設置左側的激活狀態Page({ data: {  proList: [],  item: [],  item2:[   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },   {    "typename": "服飾",   },  ],  currentActiveIndex: 0 }, onLoad: function (options) {  // ---------------------------ajax----------------------  var utilMd5 = require('../../utils/md5.js');  var md5 = utilMd5.hexMD5;  var timestamp = new Date().getTime();  var that = this;  var jsonStr = JSON.stringify({ "shopid": "34" });  var token = md5(jsonStr + timestamp) + timestamp;  wx.request({   url: "https://api.jvjiewang.com/Home/Shop/goods",   data: {    jsonStr: jsonStr,    token: token   },   method: 'POST',   header: {    "Content-Type": "application/x-www-form-urlencoded"   },   success: function (res) {    console.log(res.data.respond);    var items = res.data.respond;    that.setData({     item: items    })   }  })//----------------------------ajax----------------------  // 確保頁面數據已經刷新完畢~  setTimeout(() => {   this.getAllRects()  }, 200) }, changeMenu(e) {  // 改變左側tab欄操作  if (Number(e.target.id) === this.data.currentActiveIndex) return  MENU = 1  this.setData({   currentActiveIndex: Number(e.target.id),   rightProTop: proListToTop[Number(e.target.id)]  })  this.setMenuAnimation(Number(e.target.id)) }, scroll(e) {  for (let i = 0; i < proListToTop.length; i++) {   if (e.detail.scrollTop < proListToTop[i] && i !== 0 && e.detail.scrollTop > proListToTop[i - 1]) {    return this.setDis(i)   }  }  // 找不到匹配項,默認顯示第一個數據  if (!MENU) {   this.setData({    currentActiveIndex: 0   })  }  MENU = 0 }, setDis(i) {  // 設置左側menu欄的選中狀態  if (i !== this.data.currentActiveIndex + 1 && !MENU) {   this.setData({    currentActiveIndex: i - 1   })  }  MENU = 0  this.setMenuAnimation(i) }, setMenuAnimation(i){  // 設置動畫,使menu滾動到指定位置。  let self = this    if (menuToTop[i]) {   console.log(11111)   // 節流操作   if(timeoutId){    clearTimeout(timeoutId)   }   timeoutId = setTimeout(()=>{    console.log(12138)    self.setData({     leftMenuTop: (menuToTop[i].top - windowHeight)    })   },50)  } else {   if (this.data.leftMenuTop === 0) return   this.setData({    leftMenuTop: 0   })  } }, getActiveReacts(){  wx.createSelectorQuery().selectAll('.menu-active').boundingClientRect(function (rects) {   return rects[0].top  }).exec() }, getAllRects() {   // 獲取商品數組的位置信息  wx.createSelectorQuery().selectAll('.pro-item').boundingClientRect(function (rects) {   rects.forEach(function (rect) {    proListToTop.push(rect.top)   })  }).exec()   // 獲取menu數組的位置信息  wx.createSelectorQuery().selectAll('.menu-item').boundingClientRect(function (rects) {   wx.getSystemInfo({    success: function (res) {     windowHeight = res.windowHeight / 2     rects.forEach(function (rect) {      menuToTop.push({       top: rect.top,       // animate:rect.top > windowHeight       })     })    }   })  }).exec() }, // 獲取系統的高度信息 getSystemInfo() {  let self = this  wx.getSystemInfo({   success: function (res) {    windowHeight = res.windowHeight / 2   }  }) }})

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韩国精品一区二区三区四区五区 | 在线亚州 | 久久99综合久久爱伊人 | 亚洲成人中文字幕在线 | 亚洲小视频网站 | 黄色免费小视频网站 | 91情侣在线偷精品国产 | 国产青草视频在线观看 | 国产精品久久久久久久四虎电影 | 欧美日韩在线中文字幕 | 精品久久久久久国产 | 日日鲁夜夜视频热线播放 | 久久国产精品一区 | 国产呻吟| 日本中文视频 | 末成年女av片一区二区 | 成人一区二区在线观看视频 | 久久国产精品影视 | 久久69精品久久久久久国产越南 | 日本高清在线免费 | 国产一区二区三区视频在线 | 91九色视频| 精品一区二区免费视频视频 | 亚洲日本高清 | 亚洲午夜久久久久 | 日本成人二区 | 日韩视频在线不卡 | 99在线在线视频免费视频观看 | 黄污在线观看 | 成人黄视频在线观看 | 久久色伦理资源站 | 视频国产一区二区 | 狠狠操人人干 | 国产精品美女久久久久久不卡 | 日韩视频一 | 精品一区二区久久久久久按摩 | 综合毛片 | 91成人久久| 中文字幕一区2区 | 曰批全过程40分钟免费视频多人 | 午夜精品成人 |