下面来详细讲解,微信小程序如何实现tab切换功能,如下图所示:
在wxml文件里面,搭建结构。其中,tab盒子是tab整体,btns里面的view是切换按钮,cons里面的view是切换的盒子内容。
把切换按钮btns和内容cons渲染出来。在js文件里面书写数据,并且在wxml文件里面通过wx:for进行列表渲染输出。
通过d性布局去书写样式。添加cur当前类名去控制当前按钮的样式和当前显示的内容盒子。
注意微信小程序使用的是rpx可以自适应的单位,规定所有屏幕宽度为750rpx,在iPhone6设备屏幕宽度换算是2rpx=1px。
逻辑层添加了active数据控制当前显示盒子。
wxml要书写判断验证去控制盒子是否有cur类名。
上面表达式表示,如果当前项的索引值index等于数据active,则此项有cur这个类名,否则就没有。注意cur类名是控制当前按钮样式和当前显示内容盒子的。
有cur这个类名的按钮会显示当前的样式,有cur这个类名的内容盒子是显示的,但是否有这个类名是通过active这个数据决定的。所以最后我们只需要把active这个数据的值修改成用户点击按钮的索引值即可实现tab切换功能。
首先要给按钮btn自定义索引值等于循环当前项的index,微信小程序给组件自定义索引值是通过在组件身上添加data-index=”{{index}}”属性,然后在js里面即可通过事件对象里面的e.currentTarget.dataset.index属性获取用户点击按钮的索引值。
给按钮自定义索引值和绑定事件,绑定点击事件通过给按钮组件添加属性bindtap=“函数名”,此处设置函数名为toggle。
把active的值设置为用户点击按钮的索引值,即可实现tab切换功能。
e.currentTarget.dataset.index获取用户点击按钮的索引值,微信小程序通过this.setData()去修改data里面的数据内容。
制作的icon要在50*50px以内(红色), 小程序导航icon周围系统自留了空间(蓝色),此处的小房子icon是34*39px
微信小程序,简称小程序,英文名MiniProgram,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
扩展资料:
安全管理
2018年12月27日,腾讯公司发布《腾讯隐私保护白皮书》,倡导“科技向善,数据有度”的隐私保护理念。在小程序的《服务条款》、《运营规范》中,分别设有“用户个人信息保护”和“用户隐私及数据规范”专章介绍。
微信小程序在产品功能设计上给用户更多控制力。在小程序的设置页,为用户提供了数据权限开关,一旦用户授权之后又关闭,小程序再次使用该用户数据时需要重新获得授权,为用户提供更方便的数据控制权。用户在小程序的资料页还可以看到隐私数据保护的提示以及投诉入口。
小程序在收集、获取用户数据上,小程序坚持“必要+合理”原则。必要是指只有在小程序的具体业务中,确实有场景需要获取用户数据的情况下,开发者才能去获取用户的同意授权;合理是指开发者获取数据的范围不应该超出具体场景所需要的数据范围。
例如一个提供外卖服务的小程序,可能需要获得电话、地址等数据,但没有必要获取性别、年龄等数据,否则平台会认为小程序收集用户数据的行为违反了“必要并且合理”的原则,会对这类小程序进行处理。
参考资料来源:百度百科-微信小程序
1、tabBar
在app.json文件中添加tabBar节点。tabBar是小程序客户端底部或顶部tab栏的实现。
(1)tabBar相关属性
color:tab上的文字默认颜色,仅支持十六进制颜色。
selectedColor:tab上的文字选中时的颜色,仅支持十六进制颜色。
backgroundColor:tab的背景色,仅支持十六进制颜色。
borderStyle:tabbar上边框的颜色, 仅支持 black / white。
position:tabBar的位置,默认值是: bottom,仅支持 bottom / top。当 position 为 top 时,不显示 icon。
custom:自定义tabBar。
"tabBar": {
"color": "#000000",
"selectedColor": "#336699",
"backgroundColor": "#ffffff",
"borderStyle": "black",
"position": "bottom"
}
(2)list
list:tab的列表。
list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。
pagePath:页面路径,必须在pages 中先定义。
text:tab 上按钮文字。
iconPath:图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。selectedIconPath:选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。
"list": [
{
"text": "首页",
"pagePath": "pages/index/index",
"iconPath": "assets/icon/home.png",
"selectedIconPath": "assets/icon/home2.png"
},
{
"text": "列表",
"pagePath": "pages/list/list",
"iconPath": "assets/icon/list.png",
"selectedIconPath": "assets/icon/list2.png"
}
]
2、页面跳转
(1)跳转普通页面
方法① navigator组件
<!-- 跳转到普通页,可以通过返回按钮返回 -->
<navigator url="../detail/detail">到详情页</navigator>
方法② navigateTo()方法
navigateTo()方法,用于跳转普通页面。
<view bindtap="gotoDetail">到详情页</view>
gotoDetail(){
//使用全局api跳转,navigateTo()方法,用于跳转普通页面
wx.navigateTo({
url: '../detail/detail',
})
}
(2)跳转tabBar页面
方法① navigator组件
如果要使用navigator组件跳转tabBar页面,需要设置open-type="switchTab"。
<!-- 跳转到tabBar页面,不可以通过返回按钮返回。因为跳转到指定的tabBar页面后,会关闭其他所有页面 -->
<navigator url="../list/list" open-type="switchTab">到列表页</navigator>
方法② switchTab()方法
switchTab()方法,用于跳转tabBar页面。
<view bindtap="gotoList">到列表页</view>
gotoList(){
wx.switchTab({
url: '../list/list',
})
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)