微信小程序自定义可滑动顶部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 相关文章推荐
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
js indexOf()定义和用法
Oct 21 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
深入浅析JavaScript中的作用域和上下文
Mar 26 Javascript
Node.js中npm常用命令大全
Jun 09 Javascript
原生js编写焦点图效果
Dec 08 Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
JS实现按钮控制计时开始和停止功能
Jul 27 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 Javascript
JQuery中DOM节点的操作与访问方法实例分析
Dec 23 jQuery
微信小程序开发实现的选项卡(窗口顶部/底部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
构建简单的Webmail系统
2006/10/09 PHP
php将数据库导出成excel的方法
2010/05/07 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php中的比较运算符详解
2013/10/28 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
php生成微信红包数组的方法
2019/09/05 PHP
js右键菜单效果代码
2007/07/21 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
js date 格式化
2017/02/15 Javascript
几行js代码实现自适应
2017/02/24 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
python中的计时器timeit的使用方法
2017/10/20 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Python count函数使用方法实例解析
2020/03/23 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
你不知道的5个HTML5新功能
2016/06/28 HTML / CSS
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
创意婚礼策划方案
2014/05/18 职场文书
课外科技活动总结
2014/08/27 职场文书
单位委托书怎么写
2014/09/21 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
2014年班组工作总结
2014/11/20 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书