微信小程序自定义可滑动顶部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 相关文章推荐
JS 自动完成 AutoComplete(Ajax 查询)
Jul 07 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
jQuery实现当按下回车键时绑定点击事件
Jan 28 Javascript
Jquery选择器中使用变量实现动态选择例子
Jul 25 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
Jan 23 Javascript
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
Vue 实现从文件中获取文本信息的方法详解
Oct 16 Javascript
JS实现简易图片自动轮播
Oct 16 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
Python制作爬虫采集小说
2015/10/25 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
2015年暑假生活总结
2015/07/13 职场文书
高二英语教学反思
2016/03/03 职场文书
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers