微信小程序实现tab

在这里插入图片描述

<view>
    <!-- Tab布局 -->
    <view class='navBox'>
        <view class='titleBox' bindtap='titleClick' data-idx='0'>
            <text class="{{0 == currentIndex ? 'fontColorBox' : ''}}">装备</text>
            <hr class="{{0 == currentIndex ? 'lineBox' : 'notLineBox'}}" />
        </view>
        <view class='titleBox' bindtap='titleClick' data-idx='1'>
            <text class="{{1 == currentIndex ? 'fontColorBox1' : ''}}">活动</text>
            <hr class="{{1 == currentIndex ? 'lineBox' : 'notLineBox'}} " />
        </view>
    </view>
    <!-- 内容布局 -->
    <swiper style="height: 90vh;" bindchange='pagechange' current='{{currentIndex}}'>
        <swiper-item class='swiperTtemBox'>
            <view>装备内容1</view>
            <view>装备内容1</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容1</view>
            <view>装备内容</view>
            <view>装备内容2</view>
            <view>装备内容</view>
            <view>装备内容2</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容4</view>
            <view>装备内容</view>
            <view>装备内容6</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容8</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容</view>
            <view>装备内容9</view>
            <view>装备内容10</view>
        </swiper-item>
        <swiper-item class='swiperTtemBox'>
            <view>活动内容</view>
        </swiper-item>
    </swiper>
</view>

Page {
  /* 全局样式 */
  background: rgb(121, 139, 211);
  height: 100%;
  position: fixed;
}

.fontColorBox,
.fontColorBox1 {
  /* 文字默认颜色 */
  color: black;
}

.navBox {
  /* 顶部tab盒子样式 */
  width: 100%;
  height: 108rpx;
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

.navBox view:last-child {
  /* 最后一个tab标题的样式 */
  padding-left: 20%;
}

.titleBox {
  /* 未选中文字的样式 */
  color: rgb(168, 170, 175);
  font-size: 30rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lineBox,.notLineBox{
  /* 选中及未选中底线共同样式 */
  width: 32rpx;
  height: 8rpx;
}

.lineBox {
  /* 选中底线样式 */
  background: rgb(43, 44, 45);
  margin-top: 16rpx;
  border-radius: 4rpx;
}

.notLineBox {
  /* 未选中底线样式 */
  background: transparent;
}

.swiperTtemBox {
  /* 底部内容样式 */
  height: 100vh;
  overflow: scroll;
  margin: 12rpx 0rpx;
  background: white;
  font-size: 28rpx;
}
Page({
  data: {
    currentIndex: 0, //默认是活动项
  },
  // 切换swiper-item触发bindchange事件
  pagechange: function (e) {
    console.log(e,9999)
    // 通过touch判断,改变tab的下标值
    if ("touch" === e.detail.source) {
      let currentPageIndex = this.data.currentIndex;
      currentPageIndex = (currentPageIndex + 1) % 2;
      // 拿到当前索引并动态改变
      this.setData({
        currentIndex: currentPageIndex,
      })
    }
  },

  //点击tab时触发
  titleClick: function (e) {
    this.setData({
      //拿到当前索引并动态改变
      currentIndex: e.currentTarget.dataset.idx
    })
  },
})

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值