微信小程序tab切换

本文介绍了如何在微信小程序中封装函数实现Tab切换效果。通过使用ES6箭头函数和map方法处理样式,当点击或滑动时更新当前选中项的样式。示例代码包括js函数、页面数据、事件处理和wxss样式设置。

封装函数:

function fn(styles, index=0) {

    // ES6提供的箭头函数

    styles.map((item, key) => {

        if (key == index) {

            item['class'] = 'color'

        } else {

            item['class'] = ''

        }

    })

    return{

        index,

        styles

    };

}

module.exports={

   fn:fn

}

js引入:

// 引入封装函数

const obj=require("../../utils/function.js");

Page({

  /**

   * 页面的初始数据

   */

  data: {

    styles:[

      {class:"color",text:'商品参数'},

      {class:"",text:'商品介绍'},

      {class:"",text:'规格明细'}

    ],

    index:0

  },

  tab(evt){

    // console.log(evt)

// 对应下标

    let index=evt.target.dataset.index;

    let styles=this.data.styles;

    let ret=obj.fn(styles,index);

    this.setData(ret);

  },

  changetab(evt){

// console.log(evt)

// 滑动下面tab对应上面下标

let index=evt.detail.current;

let styles=this.data.styles;

    let ret=obj.fn(styles,index);

    this.setData(ret);

  },

页面:

<view class="box">

    <block wx:for="{{styles}}" wx:key="styles">

        <view class="{{item.class}}" bindtap="tab" data-index="{{index}}">{{item.text}}</view>

    </block>

</view>

<swiper circular="{{true}}" current="{{index}}" bindchange="changetab">

<view class="content">

    <swiper-item >

        <view >商品参数</view>

    </swiper-item>

    <swiper-item >

        <view>商品介绍</view>

    </swiper-item>

    <swiper-item >

        <view>规格明细</view>

    </swiper-item>

</view>

</swiper>

wxss:

.box{

    width: 100%;

    height: 100rpx;

    /* background-color: blueviolet; */

    display: flex;

    justify-content: space-around;

}

.content{

    /* height:200rpx ; */

    /* background-color: cadetblue; */

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    padding: 200rpx 0;

    box-sizing: border-box;

}

.color{

color: red;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值