温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

小程序如何实现侧边栏切换

发布时间:2022-07-14 09:42:37 阅读:346 作者:iii 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍了小程序如何实现侧边栏切换的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇小程序如何实现侧边栏切换文章都会有所收获,下面我们一起来看看吧。

效果图如下:

小程序如何实现侧边栏切换

实现步骤:

sort.wxml

<!--主盒子-->
<view class="con">
 <!--左侧栏-->
 <view class="nav_left">
   <block wx:for="{{cateItems}}" wx:key="*this">
     <!--当前项的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="value">
       <view class="nav_right_items">
       <!--界面跳转 -->
         <navigator url="../../detail/detail">
           <image src="{{item.image}}"></image>
           <text>{{item.name}}</text>
         </navigator>
       </view>
     </block>
   </view>
   <!--如果无数据,则显示数据-->
   <view class="nodata_text" wx:else>该分类暂无数据</view>
 </view>
</view>

sort.wxss

page{  
  background#f5f5f5;  
}  
/*总体主盒子*/  
.con {  
  position: relative;  
  width100%;  
  height100%;  
  background-color#fff;  
  color#939393;  
}
 /*左侧栏主盒子*/  
.nav_left{  
  /*设置行内块级元素(没使用定位)*/  
  display: inline-block;  
  width25%;  
  height100%;  
  /*主盒子设置背景色为灰色*/  
  background#f5f5f5;  
  text-align: center;  
}  
/*左侧栏list的item*/  
.nav_left .nav_left_items{  
  /*每个高30px*/  
  height40px;  
  /*垂直居中*/  
  line-height40px;  
  /*再设上下padding增加高度,总高42px*/  
  padding6px 0;  
  /*只设下边线*/  
  border-bottom1px solid #dedede;  
  /*文字14px*/  
  font-size14px; 
}  
/*左侧栏list的item被选中时*/  
.nav_left .nav_left_items.active{  
  /*背景色变成白色*/  
  background#fff;  
  color#f0145a; 
}  
/*右侧栏主盒子*/  
.nav_right{  
  /*右侧盒子使用了绝对定位*/  
  position: absolute;  
  top0;  
  right0;  
  flex1;  
  /*宽度75%,高度占满,并使用百分比布局*/  
  width75%;  
  height1000px;  
  padding10px;  
  box-sizing: border-box;  
  background#fff;  
}  
/*右侧栏list的item*/  
.nav_right .nav_right_items{  
  /*浮动向左*/  
  float: left;  
  /*每个item设置宽度是33.33%*/  
  width33.33%;  
  height94px;  
  text-align: center;  
}  
.nav_right .nav_right_items image{  
  /*被图片设置宽高*/  
  width60px;  
  height50px;   
}  
.nav_right .nav_right_items text{  
  /*给text设成块级元素*/  
  display: block;   
  font-size14px;  
  color: black;
  /*设置文字溢出部分为...*/  
  overflow: hidden;  
  white-space: nowrap;  
  text-overflow: ellipsis;  
} 
.nodata_text
{
  color:#000;
  font-size14px;  
  text-align: center;  
}

sort.js

Page({
  data: {
    cateItems: [
      {
        cate_id1,
        cate_name"列表一",
        ishaveChildtrue,
        children:
          [
            {
              child_id1,
              name'ssd',
              image"../../images/1.jpg"
            },
            {
              child_id2,
              name'fff',
              image"../../images/2.jpg"
            },
            {
              child_id3,
              name'ghf',
              image"../../images/3.jpg"
            },
            {
              child_id4,
              name'gergr',
              image"../../images/4.jpg"
            }
          ]
      },
      {
        cate_id2,
        cate_name"列表二",
        ishaveChildtrue,
        children:
          [
            {
              child_id1,
              name'eryt',
              image"../../images/2.jpg"
            },
            {
              child_id2,
              name'3dwag',
              image"../../images/3.jpg"
            },
            {
              child_id3,
              name'hrtht',
              image"../../images/2.jpg"
            },
            {
              child_id4,
              name'ydtjy',
              image"../../images/6.jpg"
            },
            {
              child_id5,
              name'yjtdyt',
              image"../../images/3.jpg"
            },
            {
              child_id6,
              name'aerf',
              image"../../images/4.jpg"
            },
            {
              child_id7,
              name'gerg',
              image"../../images/2.jpg"
            },
            {
              child_id8,
              name'jytj',
              image"../../images/1.jpg"
            }
          ]
      },
      {
        cate_id3,
        cate_name"列表三",
        ishaveChildtrue,
        children:
          [
            {
              child_id1,
              name'jtytyj',
              image"../../images/3.jpg"
            },
            {
              child_id2,
              name'tyjfyj',
              image"../../images/6.jpg"
            },
            {
              child_id3,
              name'tuyfuk',
              image"../../images/4.jpg"
            },
            {
              child_id4,
              name'seyu5trd',
              image"../../images/3.jpg"
            }
          ]
      },
      {
        cate_id4,
        cate_name"列表四",
        ishaveChildfalse,
        children: []
      }
    ],
    curNav1,
    curIndex0
  },

  //事件处理函数  
  switchRightTab: function (e) {
    console.log(e)
    // 获取item项的id,和数组的下标值  
    let id = e.target.dataset.id,
    index = parseInt(e.target.dataset.index);
    // 把点击到的某一项,设为当前index  
    this.setData({
      curNav: id,
      curIndex: index
    })
  }
})

关于“小程序如何实现侧边栏切换”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“小程序如何实现侧边栏切换”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×