小程序侧边栏切换效果的制作步骤及代码是什么
Admin 2022-08-08 群英技术资讯 1152 次浏览
这篇文章主要讲解了“小程序侧边栏切换效果的制作步骤及代码是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。效果图如下:

实现步骤:
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;
width: 100%;
height: 100%;
background-color: #fff;
color: #939393;
}
/*左侧栏主盒子*/
.nav_left{
/*设置行内块级元素(没使用定位)*/
display: inline-block;
width: 25%;
height: 100%;
/*主盒子设置背景色为灰色*/
background: #f5f5f5;
text-align: center;
}
/*左侧栏list的item*/
.nav_left .nav_left_items{
/*每个高30px*/
height: 40px;
/*垂直居中*/
line-height: 40px;
/*再设上下padding增加高度,总高42px*/
padding: 6px 0;
/*只设下边线*/
border-bottom: 1px solid #dedede;
/*文字14px*/
font-size: 14px;
}
/*左侧栏list的item被选中时*/
.nav_left .nav_left_items.active{
/*背景色变成白色*/
background: #fff;
color: #f0145a;
}
/*右侧栏主盒子*/
.nav_right{
/*右侧盒子使用了绝对定位*/
position: absolute;
top: 0;
right: 0;
flex: 1;
/*宽度75%,高度占满,并使用百分比布局*/
width: 75%;
height: 1000px;
padding: 10px;
box-sizing: border-box;
background: #fff;
}
/*右侧栏list的item*/
.nav_right .nav_right_items{
/*浮动向左*/
float: left;
/*每个item设置宽度是33.33%*/
width: 33.33%;
height: 94px;
text-align: center;
}
.nav_right .nav_right_items image{
/*被图片设置宽高*/
width: 60px;
height: 50px;
}
.nav_right .nav_right_items text{
/*给text设成块级元素*/
display: block;
font-size: 14px;
color: black;
/*设置文字溢出部分为...*/
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.nodata_text
{
color:#000;
font-size: 14px;
text-align: center;
}
sort.js
Page({
data: {
cateItems: [
{
cate_id: 1,
cate_name: "列表一",
ishaveChild: true,
children:
[
{
child_id: 1,
name: 'ssd',
image: "../../images/1.jpg"
},
{
child_id: 2,
name: 'fff',
image: "../../images/2.jpg"
},
{
child_id: 3,
name: 'ghf',
image: "../../images/3.jpg"
},
{
child_id: 4,
name: 'gergr',
image: "../../images/4.jpg"
}
]
},
{
cate_id: 2,
cate_name: "列表二",
ishaveChild: true,
children:
[
{
child_id: 1,
name: 'eryt',
image: "../../images/2.jpg"
},
{
child_id: 2,
name: '3dwag',
image: "../../images/3.jpg"
},
{
child_id: 3,
name: 'hrtht',
image: "../../images/2.jpg"
},
{
child_id: 4,
name: 'ydtjy',
image: "../../images/6.jpg"
},
{
child_id: 5,
name: 'yjtdyt',
image: "../../images/3.jpg"
},
{
child_id: 6,
name: 'aerf',
image: "../../images/4.jpg"
},
{
child_id: 7,
name: 'gerg',
image: "../../images/2.jpg"
},
{
child_id: 8,
name: 'jytj',
image: "../../images/1.jpg"
}
]
},
{
cate_id: 3,
cate_name: "列表三",
ishaveChild: true,
children:
[
{
child_id: 1,
name: 'jtytyj',
image: "../../images/3.jpg"
},
{
child_id: 2,
name: 'tyjfyj',
image: "../../images/6.jpg"
},
{
child_id: 3,
name: 'tuyfuk',
image: "../../images/4.jpg"
},
{
child_id: 4,
name: 'seyu5trd',
image: "../../images/3.jpg"
}
]
},
{
cate_id: 4,
cate_name: "列表四",
ishaveChild: false,
children: []
}
],
curNav: 1,
curIndex: 0
},
//事件处理函数
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
})
}
})
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了解决vue项目打包上服务器显示404错误,本地没出错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
javascript取消选中事件的方法:可以通过删除事件处理程序来实现取消选中事件,例如【btn.onclick = null;】。
TypeScript对于Duck类型和模块命名空间应用 目录 一.TypeScript 鸭子类型 二.TypeScript 命名空间 三.TypeScript 模块 四.类型脚本声明文件 一.TypeScript 鸭子类型 Duck类型是一种动态类型和多态形式.在这种风格中,对象的有效语义不是通过从特定类继承或实现特定接口来确定的,而是通过“当前方法和属性的集合”来确定的. var object_name = { key1: "value1", // 标量 key2: "value", key3: functi ...
这篇文章我们来了解jQuery中元素增加属性值的方法,给元素增加属性值是JavaScript学习中比较基础的内容,在jQuery中可以利用attr()方法来实现,下面我们来详细的了解看看怎样做,有需要的朋友可以参考。
本文通过代码给大家介绍了使用react-color实现前端取色器的方法,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008