小程序实现tab及多个列表选项切换

微信   2024-12-25 07:52   84   0  

示例1:

85976_ygsp_2372.png

index.wxml

<view>
  <view class="tab-container">
    <view
      class="default {{type=='expend'? 'expend-active':''}}"
      bindtap="handleType"
      data-type="expend"
      >支出</view
    >
    <view
      class="default {{type=='earning'? 'earning-active': ''}}"
      bindtap="handleType"
      data-type="earning"
      >收入</view
    >
    <view
      class="default {{type=='transaccount'?'transaccount-active': ''}}"
      bindtap="handleType"
      data-type="transaccount"
      >转账</view
    >
  </view>
</view>

index.js

Page({
  /**
   * 页面的初始数据
   */
  data: {
    type: 'expend',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {},

  handleType(event) {
    const type = event.currentTarget.dataset.type;
    this.setData({
      type: type,
    });
  },
});

index.wxss

/* pages/tablistchange/tablistchange.wxss */
.tab-container {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10rpx 0;
}

.tab-container .default {
  margin-right: 25rpx;
  padding: 5rpx 15rpx;
}

.expend-active {
  color: #0ca168;
  border-bottom: 2px solid #0ca168;
}

.earning-active {
  color: #ff6b6a;
  border-bottom: 2px solid #ff6b6a;
}

.transaccount-active {
  color: #abcdef;
  border-bottom: 2px solid #abcdef;
}


示例2:

1242_iy0u_9556.png

index.wxml

<view class="encourage-content">
  <view class="encorage-title">{{accountlist.encourtitle}}</view>
  <view class="encourage-list">
    <block wx:for="{{listData}}" wx:key="*this">
      <view
        data-item="{{item}}"
        class="list-item {{item.account == accountlist.account ? 'list-active': ''}}"
        bindtap="handleList"
        >¥<text>{{item.account}}</text></view
      >
    </block>
  </view>
</view>

index.js

// pages/tablistchange/tablistchange.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    accountlist: {
      // 通过初始化一个目标对象
      account: 2,
      encourtitle: '两只黄鹂鸣翠柳',
    },
    listData: [
      // 循环遍历的list数据
      {
        account: 2,
        encourtitle: '两只黄鹂鸣翠柳',
      },
      {
        account: 3,
        encourtitle: '三人行,必有我师',
      },
      {
        account: 5,
        encourtitle: '吾生有涯,吾知无涯',
      },
      {
        account: 13,
        encourtitle: '一行白鹭上青天',
      },
      {
        account: 14,
        encourtitle: '白驹过隙,岁月如梭,愿君只争朝夕',
      },
      {
        account: 52,
        encourtitle: '何以解忧,唯有暴富',
      },
    ],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {},

  // 列表切换
  handleList(event) {
    // console.log(event);
    this.setData({
      // 给accountList对象重新赋值
      accountlist: event.currentTarget.dataset.item,
    });
  },
});

index.wxss

.encourage-content {
  text-align: center;
  padding: 30rpx 80rpx 0 80rpx;
}
.encourage-content .encorage-title {
  padding-bottom: 30rpx;
  color: #ff6b6a;
}
.encourage-content .encourage-list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.encourage-content .encourage-list .list-item {
  width: 31%;
  height: 80rpx;
  border: 1px solid #dddd;
  margin-bottom: 15rpx;
  line-height: 80rpx;
}
.encourage-content .encourage-list .list-active {
  color: #ff6b6a;
  border: 1px solid #ff6b6a;
}


来源:https://zhuanlan.zhihu.com/p/264763638










博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。