微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例


Posted in Javascript onMay 14, 2019

本文实例讲述了微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能。分享给大家供大家参考,具体如下:

微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例

顶部滚动选项卡

话不多说,直接上代码

pages/home/home.wxml

<scroll-view scroll-x="true" style='width: 100%; white-space:nowrap; '>
<!-- tab -->
<view class="tab">
<view class="tab-nav" style='font-size:12px'>
<view wx:for="{{tabnav.tabitem}}" bindtap="setTab" data-tabindex="{{index}}" style="min-width:20%;max-width:20%;text-align:center;height: 80rpx;background: #fff;border-bottom:{{index>4?'1rpx solid #ddd;':''}}">{{item.text}}</view>
<view>
<view class="tab-line" style="width:{{100/tabnav.tabnum}}%;transform:translateX({{100*showtab}}%);"></view>
</view>
</view>
</view>
</scroll-view>
<swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:150rpx" bindchange="bindChange">
<swiper-item>
<view>分类1</view>
</swiper-item>
<swiper-item>
<view>分类2</view>
</swiper-item>
<swiper-item>
<view>分类3</view>
</swiper-item>
<swiper-item>
<view>分类4</view>
</swiper-item>
<swiper-item>
<view>分类5</view>
</swiper-item>
<swiper-item>
<view>分类6</view>
</swiper-item>
</swiper>

pages/home/home.wxss

.tab {
display: flex;
flex-direction: column;
}
.tab-nav {
border-bottom: 1rpx solid #ddd;
width: 100%;
height: 80rpx;
display: flex;
line-height: 79rpx;
position: relative;
}
.tab-line {
position: absolute;
left: 0;
bottom: -1rpx;
height: 4rpx;
background: #f7982a;
transition: all 0.3s;
}
.tab-content {
flex: 1;
overflow-y: auto;
overflow-x: hidden;
}
/*选项卡页面联动切换*/
.swiper-tab {
width: 100%;
border-bottom: 2rpx solid #777;
text-align: center;
line-height: 80rpx;
}
.swiper-tab-list {
font-size: 30rpx;
display: inline-block;
width: 33.33%;
color: #777;
}
.on {
color: #da7c0c;
border-bottom: 1rpx solid #da7c0c;
}
.swiper-box {
display: block;
height: 100%;
width: 100%;
overflow: hidden;
}
.swiper-box view {
text-align: center;
}

pages/home/home.js

Page({
data: {
showtab: 0, //顶部选项卡索引
tabnav: {
tabnum: 5,
tabitem: [
{
"id": 0,
"text": "分类1"
},
{
"id": 1,
"text": "分类2"
},
{
"id": 2,
"text": "分类3"
},
{
"id": 3,
"text": "分类4"
},
{
"id": 4,
"text": "分类5"
},
{
"id": 5,
"text": "分类6"
}
]
},
productList: [],
// tab切换
currentTab: 0,
},
onLoad: function () {
},
setTab: function (e) {
var that = this
that.setData({
showtab: e.currentTarget.dataset.tabindex
})
if (this.data.currentTab === e.currentTarget.dataset.tabindex) {
return false;
} else {
that.setData({
currentTab: e.currentTarget.dataset.tabindex
})
}
},
/**
* 滑动切换tab
*/
bindChange: function (e) {
var that = this;
that.setData({ currentTab: e.detail.current,
showtab: e.detail.current});
}
})

该代码实现基于两个大神的代码,(链接: https://3water.com/article/161227.htm 和https://3water.com/article/155522.htm),在两位大神的基础上衍生出的可滚动的顶部选项卡,在此致谢。代码缺陷:当向右滑动到第6个页面的时候选项卡没有自动滑动。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
JavaScript 数组的 uniq 方法
Jan 23 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
Oct 23 Javascript
js动态为代码着色显示行号
May 29 Javascript
jquery select多选框的左右移动 具体实现代码
Jul 03 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
使用堆实现Top K算法(JS实现)
Dec 25 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
全面了解addEventListener和on的区别
Jul 14 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
May 07 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
Jul 24 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
May 14 #Javascript
详解jenkins自动化部署vue
May 14 #Javascript
基于JS实现前端压缩上传图片的实例代码
May 14 #Javascript
JavaScript如何实现元素全排列实例代码
May 14 #Javascript
微信小程序实现多选框全选与取消全选功能示例
May 14 #Javascript
js中arguments对象的深入理解
May 14 #Javascript
ios中视频的最后一桢问题解决
May 14 #Javascript
You might like
组合算法的PHP解答方法
2012/02/04 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
jQuery Ajax之load()方法
2009/10/12 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
特色蛋糕店创业计划书
2014/01/28 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
女方离婚起诉书
2015/05/18 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
nginx优化的六点方法
2021/03/31 Servers
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL