微信小程序自定义可滑动顶部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 相关文章推荐
JQuery 学习笔记 选择器之六
Jul 23 Javascript
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
jquery实现邮箱自动补全功能示例分享
Feb 17 Javascript
移动端基础事件总结与应用
Jan 12 Javascript
全站最详细的Vuex教程
Apr 13 Javascript
angularJS实现不同视图同步刷新详解
Oct 09 Javascript
微信小程序实现留言板(Storage)
Nov 02 Javascript
jquery 验证用户名是否重复代码实例
May 14 jQuery
js实现GIF图片的分解和合成
Oct 24 Javascript
原生js实现表格循环滚动
Nov 24 Javascript
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
微信小程序开发实现的选项卡(窗口顶部/底部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
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
python判断windows系统是32位还是64位的方法
2015/05/11 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
Python ini文件常用操作方法解析
2020/04/26 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
广州地球村科技数据库题目
2016/04/25 面试题
Ruby如何进行文件操作
2014/07/17 面试题
药学专业个人的自我评价
2013/12/31 职场文书
女方回门宴答谢词
2014/01/14 职场文书
审计主管岗位职责
2014/01/31 职场文书
中学生自我评价范文
2014/02/08 职场文书
2015员工年度考核评语
2015/03/25 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python