微信小程序自定义可滑动顶部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实现的网页局布刷新效果
Dec 01 Javascript
javascript利用初始化数据装配模版的实现代码
Nov 17 Javascript
jQuery 无限级菜单的简单实例
Feb 21 Javascript
jQuery+PHP打造滑动开关效果
Dec 16 Javascript
js实现鼠标悬浮给图片加边框的方法
Jan 30 Javascript
微信小程序 navigation API实例详解
Oct 02 Javascript
javascript帧动画(实例讲解)
Sep 02 Javascript
node.js实现为PDF添加水印的示例代码
Dec 05 Javascript
vue-cli中使用高德地图的方法示例
Mar 28 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
vue中使用vee-validator完成表单校验方案
Nov 01 Javascript
vue 取出v-for循环中的index值实例
Nov 09 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下载远程图片函数 可伪造来路
2013/06/25 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
Vue异步加载about组件
2017/10/31 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
Python多线程编程(一):threading模块综述
2015/04/05 Python
Django在win10下的安装并创建工程
2017/11/20 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
趣味比赛活动方案
2014/02/15 职场文书
抄作业检讨书
2014/02/17 职场文书
文员岗位职责范本
2014/03/08 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
小学安全工作总结2015
2015/05/18 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis