溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信小程序如何實(shí)現(xiàn)側(cè)欄分類(lèi)效果

發(fā)布時(shí)間:2021-06-29 09:57:57 來(lái)源:億速云 閱讀:1321 作者:小新 欄目:web開(kāi)發(fā)

這篇文章主要介紹微信小程序如何實(shí)現(xiàn)側(cè)欄分類(lèi)效果,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

在商場(chǎng)項(xiàng)目中,一般都會(huì)有分類(lèi)頁(yè)面。
分類(lèi)頁(yè)面可以給用戶快速找到相關(guān)的商品,下面以側(cè)欄分類(lèi)為例,如下圖

微信小程序如何實(shí)現(xiàn)側(cè)欄分類(lèi)效果

布局分析:

<主盒子>
<左盒子></左盒子>
<右盒子></右盒子>
</主盒子>
左盒子使用標(biāo)準(zhǔn)流
右盒子使用絕對(duì)定位(top、right)

微信小程序如何實(shí)現(xiàn)側(cè)欄分類(lèi)效果

wxml:

<!--主盒子--> 
<view class="container"> 
 <!--左側(cè)欄--> 
 <view class="nav_left"> 
 <block wx:for="{{navLeftItems}}"> 
 <!--當(dāng)前項(xiàng)的id等于item項(xiàng)的id,那個(gè)就是當(dāng)前狀態(tài)--> 
 <!--用data-index記錄這個(gè)數(shù)據(jù)在數(shù)組的下標(biāo)位置,使用data-id設(shè)置每個(gè)item的id值,供打開(kāi)2級(jí)頁(yè)面使用--> 
 <view class="nav_left_items {{curNav == item.id ? 'active' : ''}}" bindtap="switchRightTab" data-index="{{index}}" data-id="{{item.id}}">{{item.tree.desc}}</view> 
 </block> 
 </view> 
 <!--右側(cè)欄--> 
 <view class="nav_right"> 
 <!--如果有數(shù)據(jù),才遍歷項(xiàng)--> 
 <view wx:if="{{navRightItems[curIndex].tree.nodes[1].tree.nodes}}"> 
 <block wx:for="{{navRightItems[curIndex].tree.nodes[1].tree.nodes}}"> 
 <view class="nav_right_items"> 
  <navigator url="../list/index?brand={{item.tree.id}}&typeid={{navRightItems[curIndex].id}}"> 
  <!--用view包裹圖片組合,如果有圖片就用,無(wú)圖片提供就使用50x30的這個(gè)默認(rèn)圖片--> 
  <view>  
  <block wx:if="{{item.tree.logo}}"> 
  <image src="{{item.tree.logo}}"></image> 
  </block> 
  <block wx:else> 
  <image src="http://temp.im/50x30"></image> 
  </block> 
  </view> 
  <!--如果有文字,就用文字;無(wú)文字就用其他--> 
  <view wx:if="{{item.tree.desc}}"> 
  <text>{{item.tree.desc}}</text> 
  </view> 
  <view wx:else> 
  <text>{{item.tree.desc2}}</text> 
  </view> 
  </navigator> 
 </view> 
 </block> 
 </view> 
 <!--如果無(wú)數(shù)據(jù),則顯示數(shù)據(jù)--> 
 <view wx:else>暫無(wú)數(shù)據(jù)</view> 
 </view> 
</view>

wxss:

page{ 
 background: #f5f5f5; 
} 
/*總體主盒子*/ 
.container { 
 position: relative; 
 width: 100%; 
 height: 100%; 
 background-color: #fff; 
 color: #939393; 
} 
 
/*左側(cè)欄主盒子*/ 
.nav_left{ 
 /*設(shè)置行內(nèi)塊級(jí)元素(沒(méi)使用定位)*/ 
 display: inline-block; 
 width: 25%; 
 height: 100%; 
 /*主盒子設(shè)置背景色為灰色*/ 
 background: #f5f5f5; 
 text-align: center; 
} 
/*左側(cè)欄list的item*/ 
.nav_left .nav_left_items{ 
 /*每個(gè)高30px*/ 
 height: 30px; 
 /*垂直居中*/ 
 line-height: 30px; 
 /*再設(shè)上下padding增加高度,總高42px*/ 
 padding: 6px 0; 
 /*只設(shè)下邊線*/ 
 border-bottom: 1px solid #dedede; 
 /*文字14px*/ 
 font-size: 14px; 
} 
/*左側(cè)欄list的item被選中時(shí)*/ 
.nav_left .nav_left_items.active{ 
 /*背景色變成白色*/ 
 background: #fff; 
} 
 
/*右側(cè)欄主盒子*/ 
.nav_right{ 
 /*右側(cè)盒子使用了絕對(duì)定位*/ 
 position: absolute; 
 top: 0; 
 right: 0; 
 flex: 1; 
 /*寬度75%,高度占滿,并使用百分比布局*/ 
 width: 75%; 
 height: 100%; 
 padding: 10px; 
 box-sizing: border-box; 
 background: #fff; 
} 
/*右側(cè)欄list的item*/ 
.nav_right .nav_right_items{ 
 /*浮動(dòng)向左*/ 
 float: left; 
 /*每個(gè)item設(shè)置寬度是33.33%*/ 
 width: 33.33%; 
 height: 80px; 
 text-align: center; 
} 
.nav_right .nav_right_items image{ 
 /*被圖片設(shè)置寬高*/ 
 width: 50px; 
 height: 30px; 
} 
.nav_right .nav_right_items text{ 
 /*給text設(shè)成塊級(jí)元素*/ 
 display: block; 
 margin-top: 5px; 
 font-size: 10px; 
 /*設(shè)置文字溢出部分為...*/ 
 overflow: hidden; 
 white-space: nowrap; 
 text-overflow: ellipsis; 
}

js:

Page({ 
 data: { 
 navLeftItems: [], 
 navRightItems: [], 
 curNav: 1, 
 curIndex: 0 
 }, 
 onLoad: function() { 
 // 加載的使用進(jìn)行網(wǎng)絡(luò)訪問(wèn),把需要的數(shù)據(jù)設(shè)置到data數(shù)據(jù)對(duì)象 
 var that = this  
 wx.request({ 
  url: 'http://huanqiuxiaozhen.com/wemall/goodstype/typebrandList', 
  method: 'GET', 
  data: {}, 
  header: { 
  'Accept': 'application/json' 
  }, 
  success: function(res) { 
  console.log(res) 
  that.setData({ 
   navLeftItems: res.data, 
   navRightItems: res.data 
  }) 
  } 
 }) 
 }, 
 
 //事件處理函數(shù) 
 switchRightTab: function(e) { 
 // 獲取item項(xiàng)的id,和數(shù)組的下標(biāo)值 
 let id = e.target.dataset.id, 
  index = parseInt(e.target.dataset.index); 
 // 把點(diǎn)擊到的某一項(xiàng),設(shè)為當(dāng)前index 
 this.setData({ 
  curNav: id, 
  curIndex: index 
 }) 
 } 
 
})

以上是“微信小程序如何實(shí)現(xiàn)側(cè)欄分類(lèi)效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI