小程序如何實(shí)現(xiàn)折疊菜單

通常,菜單都有一級(jí)菜單二級(jí)、三級(jí)菜單之分,我們知道前端js的dom操作可以很好的控制二級(jí)菜單的顯示與隱藏,當(dāng)然今天我就不介紹web端的菜單折疊效果。我今天呢,是來(lái)學(xué)習(xí)學(xué)習(xí)小程序中該如何實(shí)現(xiàn)點(diǎn)擊一級(jí)菜單顯示/隱藏二級(jí)菜單,并且在點(diǎn)擊一個(gè)菜單顯示之外,要實(shí)現(xiàn)其他菜單隱藏。

實(shí)現(xiàn)效果如下:

動(dòng)態(tài)選擇菜單

附上代碼:

.wxml文件

<view class="cells">
    <view class="item"  wx:for="{{List}}" wx:for-index="idx" wx:for-item="item" wx:key="idx">
        <view bindtap="isOpen" class="cdn" data-index="{{item.id}}">
            <view>
                <image class="img" src="{{item.iamges}}" mode="aspectFill"/><text class="content">{{item.cont}}</text>
            </view>
            <view>
                <text class="discount">{{item.discount}}</text><image class="icon_img" src="{{item.down}}"/>
            </view>
        </view>
        <view hidden="{{item.hiddena}}"  class="hidden">
            <block wx:for="{{item.invalidActivty}}"  wx:for-index="index" wx:for-item="items" wx:key="index">
                <view class="buys">
                    <view class="v1 ">
                        <navigator><text class="new-price">{{items.price}}</text><text class="oldPrice">{{items.oldPrice}}</text></navigator>
                        <navigator><text class="buy">{{items.validType}}</text><text style="font-size: 24rpx;margin-left: 20rpx;color: #6C6C6C">{{items.validTime}}</text></navigator>
                    </view>
                    <view  class="shopping">
                        <text>購(gòu)買(mǎi)</text>
                    </view>
                </view>
            </block>
        </view>
    </view>
</view>

.wxss文件

page{
    background: #fff;
}
.swiper-img{
    width: 750rpx;
    height: 300rpx;
}
.cells .item .cdn{
    position: relative;
    box-sizing:border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20rpx 30rpx;
    /*border-bottom: 1rpx solid #f0f0f0;*/
    background-color: #fff;
    font-size: 32rpx;
}
.cells .item .cdn::after{
    content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border-bottom:0 solid #f0f0f0;border-width:1px
}

.img{
    height: 44rpx;
    width: 44rpx;
    vertical-align: middle;
    display: inline-block;
    line-height: 82rpx;
}

.icon_img{
    height:12rpx;
    width:20rpx;
    /*vertical-align: middle;*/
    /*padding-right: 15rpx;*/
    /*box-sizing: border-box;*/
}



.content{
    margin-left: 15rpx;
    line-height: 82rpx;
    vertical-align: middle;
}

.discount{
    line-height: 82rpx;
    vertical-align: middle;
    color:orange;
    box-sizing: border-box;
    padding-right: 20rpx;
}


.video-item{
    display: flex;
    flex-direction: column;
}
.buys{
    width:750rpx;
    height: 141.6rpx;
    position: relative;
    box-sizing: border-box;
    padding: 20rpx 30rpx;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    background-color:#FAFAFA;
}
.buys::after {
    content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;
    border-bottom:0 solid #DCDCDC;border-width:1px;
}
.v1{
    width: 35%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

.new-price{
    font-size: 32rpx;
    color: #3B3B3B;
}
.oldPrice{
    text-decoration:line-through;
    font-size: 24rpx;
    color: #B0B0B0;
    margin-left: 20rpx;
}
.buy{
    font-size: 24rpx;
    color: #2DAF73;
    text-align: center;
    width: 80rpx;
    height: 40rpx;
    line-height: 40rpx;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
}
.buy::after{
    content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #2DAF73;border-width:1px;border-radius:8rpx
}

.shopping{
    width: 128rpx;
    height: 56rpx;
    line-height: 56rpx;
    position: relative;
    box-sizing: border-box;
    font-size: 28rpx;
    color: #2DAF73;
    text-align: center;
}
.shopping::after{
    content:'';position:absolute;top:0;left:0;width:200%;height:200%;-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;pointer-events:none;box-sizing:border-box;border:0 solid #2DAF73;border-width:1px;border-radius:16rpx
}

.js文件

data: {
    List:[
        {iamges:"/assets/logo_aiqiyi2x.png",
          cont:"愛(ài)奇藝影視會(huì)員",
          discount:"7.5折",
          down:"/assets/icon_down2x.png",
          hiddena:true,
          id:"0",
          invalidActivty:[
            {
              price:"2.98元",
              oldPrice:"3元",
              validType:"周卡",
              validTime:'7天有效'
            },
            {
                price:"18.98元",
                oldPrice:"25元",
                validType:"月卡",
                validTime:'30天有效'
            },
          ]
        },
        {iamges:"/assets/logo_tengxun2x.png",
            cont:"騰訊視頻會(huì)員",
            discount:"7折",
            down:"/assets/icon_down2x.png",
            hiddena:true,
            id:"1",
            invalidActivty:[
                {
                    price:"2.98元",
                    oldPrice:"3元",
                    validType:"周卡",
                    validTime:'7天有效'
                },
                {
                    price:"18.98元",
                    oldPrice:"25元",
                    validType:"月卡",
                    validTime:'30天有效'
                },
            ]
        },
        {iamges:"/assets/logo_youku2x.png",
            cont:"優(yōu)酷視頻黃金會(huì)員",
            discount:"8折",
            down:"/assets/icon_down2x.png",
            hiddena:true,
            id:"2",
            invalidActivty:[
                {
                    price:"2.98元",
                    oldPrice:"3元",
                    validType:"周卡",
                    validTime:'7天有效'
                },
                {
                    price:"18.98元",
                    oldPrice:"25元",
                    validType:"月卡",
                    validTime:'30天有效'
                },
            ]
        },
        {iamges:"/assets/logo_sohu2x.png",
            cont:"搜狐視頻黃金會(huì)員",
            discount:"8折",
            down:"/assets/icon_down2x.png",
            hiddena:true,
            id:"3",
            invalidActivty:[
                {
                    price:"2.98元",
                    oldPrice:"3元",
                    validType:"周卡",
                    validTime:'7天有效'
                },
                {
                    price:"18.98元",
                    oldPrice:"25元",
                    validType:"月卡",
                    validTime:'30天有效'
                },
            ]
        },
    ]
  },
  isOpen:function(e){
      var that = this;
      var idx = e.currentTarget.dataset.index;
      var List = that.data.List;
      var curId = 0;
      for(var i = 0; i < List.length; i++ ) {
          if( idx == i ){
              if ( List[i].hiddena == true && List[i].down == "/assets/icon_down2x.png"){
                  List[i].down = "/assets/icon_up2x.png";
              } else {
                  List[i].down = "/assets/icon_down2x.png";
              }
              List[i].hiddena = !List[i].hiddena;
              curId = i;
          } else {
              List[i].hiddena = true;
              List[i].down = "/assets/icon_down2x.png";
          }
      }
      this.setData({
          List:List
        })
  }

對(duì)您有用嗎?有用就點(diǎn)個(gè)贊唄^^

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,171評(píng)論 3 119
  • WXML WXML(WeiXin Markup Language)是微信的一套標(biāo)簽語(yǔ)言,結(jié)合基礎(chǔ)組件、事件系統(tǒng),可...
    許劍鋒閱讀 7,277評(píng)論 3 51
  • 最近很多同學(xué)問(wèn)怎么在家DIY手帳貼紙,今天就整理一個(gè)詳細(xì)的步驟,分享給大家~~ 需要的工具: 家用打印機(jī)、不干膠打...
    心藍(lán)丫頭閱讀 167,616評(píng)論 22 141
  • 今天 下雨了耶 我坐在窗邊 滿耳都是聲 天和地在說(shuō)著話兒 他倆說(shuō)了老半天 到中午了還沒(méi)歇 他倆說(shuō)什么呢 怎么說(shuō)不厭...
    雪莉詩(shī)話閱讀 207評(píng)論 6 9
  • 五冷美人發(fā)飆了 中午下了班,張京京一出門(mén)就看到自家表妹站在門(mén)口沖他揮手。 張京京忙跑過(guò)去:“怎么了這是,電話也不打...
    蘇小六Six閱讀 1,703評(píng)論 0 0

友情鏈接更多精彩內(nèi)容