溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用微信小程序怎么實(shí)現(xiàn)一個運(yùn)動步數(shù)排行功能

發(fā)布時間:2021-05-12 17:41:38 來源:億速云 閱讀:462 作者:Leah 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)使用微信小程序怎么實(shí)現(xiàn)一個運(yùn)動步數(shù)排行功能,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

wxml

<!-- 向左滑動刪除功能 -->
<view class="item-box">
 <view class="items">
  <view wx:for="{{list}}" wx:key="{{index}}" class="item">
   
   <view bindtouchstart="touchS" bindtouchmove="touchM" bindtouchend="touchE" data-index="{{index}}"  class="inner txt">
   <i>{{item.rank}}</i>
   <image class="item-icon" mode="widthFix" src="{{item.icon}}"></image>
    <i> {{item.name}}</i>
   <span class="item-data">
  
    <i class="rankpace"> {{item.pace}}</i>
    <!-- <span class="rankxin">{{item.xin}}</span> -->
   </span>
   
   </view>
   
   <view data-index="{{index}}" bindtap = "delItem" class="inner del">刪除</view>
  </view>
 </view>
</view>

wxss

/* pages/leftSwiperDel/index.wxss */
view{
  box-sizing: border-box;
}
.item-box{
  width: 700rpx;
  margin: 0 auto;
  padding:40rpx 0;
}
.items{
  width: 100%;
}
.item{
  position: relative;
  border-top: 2rpx solid #eee;
  height: 120rpx;
  line-height: 120rpx;
  overflow: hidden;
   
}


.item:last-child{
  border-bottom: 2rpx solid #eee;
}
.inner{
  position: absolute;
  top:0;
}
.inner.txt{
  background-color: #fff;
  width: 100%;
  z-index: 5;
  padding:0 10rpx;
  transition: left 0.2s ease-in-out;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.inner.del{
  background-color: #e64340;
  width: 180rpx;text-align: center;
  z-index: 4;
  right: 0;
  color: #fff
}
.item-icon{
  width: 64rpx;
  height: 64rpx;
  vertical-align: middle;
  margin-right: 16rpx;
  margin-left:13px;
  border-radius:50%;

}

.item-data{
 float: right;
 margin-right:5%;}

.rankpace{
 color: #fa7e04;
}

js

// pages/leftSwiperDel/index.js
Page({
 data: {
  delBtnWidth: 180//刪除按鈕寬度單位(rpx)
 },
 onLoad: function (options) {
  // 頁面初始化 options為頁面跳轉(zhuǎn)所帶來的參數(shù)
  this.initEleWidth();
  this.tempData();
 },
 onReady: function () {
  // 頁面渲染完成
 },
 onShow: function () {
  // 頁面顯示
 },
 onHide: function () {
  // 頁面隱藏
 },
 onUnload: function () {
  // 頁面關(guān)閉
 },
 touchS: function (e) {
  if (e.touches.length == 1) {
   this.setData({
    //設(shè)置觸摸起始點(diǎn)水平方向位置
    startX: e.touches[0].clientX
   });
  }
 },
 touchM: function (e) {
  if (e.touches.length == 1) {
   //手指移動時水平方向位置
   var moveX = e.touches[0].clientX;
   //手指起始點(diǎn)位置與移動期間的差值
   var disX = this.data.startX - moveX;
   var delBtnWidth = this.data.delBtnWidth;
   var txtStyle = "";
   if (disX == 0 || disX < 0) {//如果移動距離小于等于0,文本層位置不變
    txtStyle = "left:0px";
   } else if (disX > 0) {//移動距離大于0,文本層left值等于手指移動距離
    txtStyle = "left:-" + disX + "px";
    if (disX >= delBtnWidth) {
     //控制手指移動距離最大值為刪除按鈕的寬度
     txtStyle = "left:-" + delBtnWidth + "px";
    }
   }
   //獲取手指觸摸的是哪一項
   var index = e.target.dataset.index;
   var list = this.data.list;
   list[index].txtStyle = txtStyle;
   //更新列表的狀態(tài)
   this.setData({
    list: list
   });
  }
 },
 touchE: function (e) {
  if (e.changedTouches.length == 1) {
   //手指移動結(jié)束后水平位置
   var endX = e.changedTouches[0].clientX;
   //觸摸開始與結(jié)束,手指移動的距離
   var disX = this.data.startX - endX;
   var delBtnWidth = this.data.delBtnWidth;
   //如果距離小于刪除按鈕的1/2,不顯示刪除按鈕
   var txtStyle = disX > delBtnWidth / 2 ? "left:-" + delBtnWidth + "px" : "left:0px";
   //獲取手指觸摸的是哪一項
   var index = e.target.dataset.index;
   var list = this.data.list;
   list[index].txtStyle = txtStyle;
   //更新列表的狀態(tài)
   this.setData({
    list: list
   });
  }
 },
 //獲取元素自適應(yīng)后的實(shí)際寬度
 getEleWidth: function (w) {
  var real = 0;
  try {
   var res = wx.getSystemInfoSync().windowWidth;
   var scale = (750 / 2) / (w / 2);//以寬度750px設(shè)計稿做寬度的自適應(yīng)
   // console.log(scale);
   real = Math.floor(res / scale);
   return real;
  } catch (e) {
   return false;
   // Do something when catch error
  }
 },
 initEleWidth: function () {
  var delBtnWidth = this.getEleWidth(this.data.delBtnWidth);
  this.setData({
   delBtnWidth: delBtnWidth
  });
 },
 //點(diǎn)擊刪除按鈕事件
 delItem: function (e) {
  //獲取列表中要刪除項的下標(biāo)
  var index = e.target.dataset.index;
  var list = this.data.list;
  //移除列表中下標(biāo)為index的項
  list.splice(index, 1);
  //更新列表的狀態(tài)
  this.setData({
   list: list
  });
 },
 //測試臨時數(shù)據(jù)
 tempData: function () {
  var list = [
   {
    rank: "1",
    txtStyle: "",
    icon: "/images/my.png",
    name: "李飛",
    pace: "23456",
   },
   {
    rank: "2",
    txtStyle: "", 
    icon: "/images/my.png",
    name: "張葉",
    pace: "23450",
   },
   {
    rank: "3",
    txtStyle: "",
    icon: "/images/my.png",
    name: "王小婷",
    pace: "22345",
   },
   {
    rank: "4",
    txtStyle: "",
    icon: "/images/my.png",
    name: "袁經(jīng)理",
    pace: "21687",
   },
   {
    rank: "5",
    txtStyle: "",
    icon: "/images/my.png",
    name: "陳雅婷",
    pace: "21680",
   },
   {
    rank: "6",
    txtStyle: "",
    icon: "/images/my.png",
    name: "許安琪",
    pace: "20890",
   },
   {
    rank: "7",
    txtStyle: "",
    icon: "/images/my.png",
    name: "里俊飛",
    pace: "20741",
   },
   {
    rank: "8",
    txtStyle: "",
    icon: "/images/my.png",
    name: "李小俊",
    pace: "19511",
   },
   {
    rank: "9",
    txtStyle: "",
    icon: "/images/my.png",
    name: "陳俊飛",
    pace: "19501",
   },]
  //
  this.setData({
   list: list
  });
 }
})

以上就是使用微信小程序怎么實(shí)現(xiàn)一個運(yùn)動步數(shù)排行功能,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI