微信小程序自定义可滑动顶部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 相关文章推荐
CSS+JS构建的图片查看器
Jul 22 Javascript
JS 文件本身编码转换 图文教程
Oct 12 Javascript
javascript 时间比较实现代码
Oct 28 Javascript
19个很有用的 JavaScript库推荐
Jun 27 Javascript
js控制表单不能输入空格的小例子
Nov 20 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
jquery表单验证插件formValidator使用方法
Apr 01 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
Apr 14 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
vue的mixins属性详解
Mar 14 Javascript
element ui 表格动态列显示空白bug 修复方法
Sep 04 Javascript
微信小程序 导入图标实现过程详解
Oct 11 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
simplehtmldom Doc api帮助文档
2012/03/26 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
潜说js对象和数组
2011/05/25 Javascript
js显示时间 js显示最后修改时间
2013/01/02 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
微信小程序实现时间戳格式转换
2020/07/20 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python开发之str.format()用法实例分析
2016/02/22 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python字符串查找函数的用法详解
2019/07/08 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
Python实现爬取并分析电商评论
2020/06/19 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
教师先进工作者事迹材料
2014/05/01 职场文书
党支部对转正的意见
2015/06/02 职场文书
小学运动会入场口号
2015/12/24 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书