微信小程序 左右分类列表

分类界面,左边是一级目录,右边是一级目录对应的二级目录,根据这个需求,我们数据设计的结构一定是数组嵌套数组,第一个数组包含一级目录数据,嵌套的数组包含的是二级目录的数据。

wxml代码:

<view class="page">

  <!--左侧栏-->
  <view class="nav_left">
    <block wx:for="{
    {cateItems}}" wx:key="unique">
      <!--当前项的id等于item项的id,那个就是当前状态-->
      <!--用data-index记录这个数据在数组的下标位置,使用data-id设置每个item的id值,供打开2级页面使用-->
      <view class="nav_left_items {
    {curNav == item.cate_id ? 'active' : ''}}" bindtap="switchRightTab" data-index="{
    {index}}" data-id="{
    {item.cate_id}}">{
   {item.cate_name}}</view>
    </block>
  </view>
  <!--右侧栏-->
  <view class="nav_right">
  <!--如果有数据,才遍历项-->
    <view wx:if="{
    {cateItems[curIndex].ishaveChild}}">
      <block wx:for="{
    {cateItems[curIndex].children}}" wx:key="unique">
        <view class
  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是微信小程序左右分类栏的代码示例: ```html <view class="container"> <view class="left"> <scroll-view scroll-y="{{true}}" scroll-into-view="{{scrollIntoView}}" scroll-with-animation="{{true}}" bindscroll="scrollLeft" style="height:{{winHeight}}px;"> <view class="left-item" wx:for="{{leftList}}" wx:key="index" data-index="{{index}}" bindtap="switchRightTab">{{item}}</view> </scroll-view> </view> <view class="right"> <scroll-view scroll-y="{{true}}" scroll-into-view="{{scrollIntoView}}" scroll-with-animation="{{true}}" bindscroll="scrollRight" style="height:{{winHeight}}px;"> <view class="right-item" wx:for="{{rightList}}" wx:key="index">{{item}}</view> </scroll-view> </view> </view> ``` ```js Page({ data: { winHeight: 0, scrollIntoView: '', leftList: ['分类1', '分类2', '分类3', '分类4'], rightList: [ ['分类1-内容1', '分类1-内容2', '分类1-内容3'], ['分类2-内容1', '分类2-内容2', '分类2-内容3'], ['分类3-内容1', '分类3-内容2', '分类3-内容3'], ['分类4-内容1', '分类4-内容2', '分类4-内容3'] ] }, onLoad: function () { const that = this; wx.getSystemInfo({ success: function (res) { that.setData({ winHeight: res.windowHeight }); } }); }, switchRightTab: function (e) { const index = e.currentTarget.dataset.index; this.setData({ scrollIntoView: 'item' + index, currentLeft: index }); }, scrollLeft: function (e) { console.log(e); }, scrollRight: function (e) { console.log(e); } }); ``` CSS 样式: ```css .container { display: flex; height: 100%; } .left { width: 25%; background-color: #f2f2f2; border-right: 1rpx solid #ccc; } .left-item { padding: 10rpx; font-size: 32rpx; text-align: center; cursor: pointer; } .right { width: 75%; padding: 10rpx; } .right-item { height: 200rpx; margin-bottom: 20rpx; background-color: #fff; border-radius: 5rpx; padding: 20rpx; font-size: 28rpx; } ``` 其中,左侧分类栏使用 `scroll-view` 实现滚动效果,右侧内容区使用 `wx:for` 循环渲染数据。通过 `scroll-into-view` 属性和 `bindtap` 方法实现左右联动效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值