欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序之 catalog 切换实现解析

程序员文章站 2023-11-03 13:23:51
组件名称:catalog 组件属性:catalogdata,type:string 组件描述:这是一个子组件,数据从父组件中传递 效果图: catalog 目录...

组件名称:catalog

组件属性:catalogdata,type:string

组件描述:这是一个子组件,数据从父组件中传递

效果图:

微信小程序之 catalog 切换实现解析

catalog 目录为多个,使用 scroll-view 容器。但是在当前组件中,只写每个 catalog 数据展示并实现 catalog 切换效果,这样会保证当前组件的最小粒度。

分析当前组件可能用到的属性为:组件名称,切换状态,未选中状态,切换点击方法。

<block wx:for="{{catalogdata}}" wx:key="id" wx:for-item="item" class="item">
  <view class="scroll-view-item catalog-title {{curindex == index ? 'catalog-active' : 'catalog-normal'}}" data-index="{{index}}" catchtap="goindex">{{item.catalog}}</view>
</block>

curindex 为点击当前 catalog 时获取的 index

index 为 catalogdata 这个数组默认的 index, 也就是 data-index 的值

goindex 为点击当前 catalog 的方法,通过点击获取到 curindex 的值

通过判断当前 curindex 是否与数组中的 index 是否相等,如果相等,则给当前 catalog 添加选中的样式 catalog-active,否则添加 catalog-normal。

更新默认 curindex 的默认值

component({
 /**
  * 组件的属性列表
  */
 properties: {
  catalogdata:{
   type: array,
  }
 },
 /**
  * 组件的初始数据
  */
 data: {
   curindex:0
 },  
  /**
   * 组件的方法列表
   */
  methods: {
    goindex(event) {
      let nextindex = event.currenttarget.dataset.index;
      this.setdata({
        curindex: nextindex
      })      
      console.log(this.data.curindex + '=' + nextindex);
    },
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。