小程序简单实现折叠菜单

最近在学习小程序,入手项目中有个使用折叠菜单功能,google下了思路。

关于文章https://blog.csdn.net/qq_35770969/article/details/81477145
中也实现了一样的功能但是此方法是针对数据属性来hidden的,但是不能添加css动效

我依照文案中的数据 也实现了类似功能,但是我用的class方式来 显示隐藏,可以在css中添加自己想要的动效。

image.png

直接贴代码

WXML

<view>
  <block wx:for="{{memberList}}" wx:key="index">
    <view class='cont' bindtap='clickitem' data-index="{{index}}">
      <text>{{item.cont}}</text>
    </view>

    <view class="{{clickId == index ? 'block':'none'}}">
      <block wx:for="{{item.invalidActivty}}" wx:key="index">
        <view class="price" bindtap="clickSubItem" data-text="{{item.price}}">
          <text>{{item.price}}</text>
        </view>
      </block>
    </view>
  </block>
</view>

WXSS

.cont{
  height: 44px;
  width: 100%;
  border-bottom: 1rpx solid red;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 20px;
}

.price{
  padding-left: 40px;
  font-size: 28rpx;
  height: 35px;
  background: #ccc;
  border-bottom: 1rpx solid #ccc;
}

.none{
    display: none;
}

.block{
    display: block
}

JS

// pages/demo/demo.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    memberList: [{
        iamges: "/assets/logo_aiqiyi2x.png",
        cont: "爱奇艺影视会员",
        discount: "7.5折",
        hiddena: true,
        id: "0",
        invalidActivty: [{
            price: "2.98元11111",
            oldPrice: "3元",
            validType: "周卡",
            validTime: '7天有效'
          },
          {
            price: "18.98元1111",
            oldPrice: "25元",
            validType: "月卡",
            validTime: '30天有效'
          },
        ]
      },
      {
        iamges: "/assets/logo_tengxun2x.png",
        cont: "腾讯视频会员",
        discount: "7折",
        hiddena: true,
        id: "1",
        invalidActivty: [{
            price: "2.98元22222",
            oldPrice: "3元",
            validType: "周卡",
            validTime: '7天有效'
          },
          {
            price: "18.98元22222",
            oldPrice: "25元",
            validType: "月卡",
            validTime: '30天有效'
          },
        ]
      },
      {
        iamges: "/assets/logo_youku2x.png",
        cont: "优酷视频黄金会员",
        discount: "8折",
        hiddena: true,
        id: "2",
        invalidActivty: [{
            price: "2.98元33333",
            oldPrice: "3元",
            validType: "周卡",
            validTime: '7天有效'
          },
          {
            price: "18.98元33333",
            oldPrice: "25元",
            validType: "月卡",
            validTime: '30天有效'
          },
        ]
      },
      {
        iamges: "/assets/logo_sohu2x.png",
        cont: "搜狐视频黄金会员",
        discount: "8折",
        hiddena: true,
        id: "3",
        invalidActivty: [{
            price: "2.98元44444",
            oldPrice: "3元",
            validType: "周卡",
            validTime: '7天有效'
          },
          {
            price: "18.98元44444",
            oldPrice: "25元",
            validType: "月卡",
            validTime: '30天有效'
          },
        ]
      },
    ]
  },

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

  },
  clickitem(e) {
    const idx = e.currentTarget.dataset.index
    if(idx == this.data.clickId){
      this.setData({
        clickId: -1
      })
    }else{
      this.setData({
        clickId: idx
      })
    }
  },

  clickSubItem(e){
    console.log(e)
  }
})

代码很简单 ,一看就明白

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容