微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解


Posted in Javascript onMay 14, 2019

本文实例讲述了微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能。分享给大家供大家参考,具体如下:

微信小程序开发中选项卡.在android中选项卡一般用fragment,到了小程序这里瞬间懵逼了.

总算做出来了.分享出来看看.

先看效果:

微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解

再上代码:

1.index.wxml

<!--index.wxml-->
<view class="swiper-tab">
  <view class="swiper-tab-list {{currentTab==0 ? 'on' : ''}}" data-current="0" bindtap="swichNav">哈哈</view>
  <view class="swiper-tab-list {{currentTab==1 ? 'on' : ''}}" data-current="1" bindtap="swichNav">呵呵</view>
  <view class="swiper-tab-list {{currentTab==2 ? 'on' : ''}}" data-current="2" bindtap="swichNav">嘿嘿</view>
</view>
<swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight - 31}}px" bindchange="bindChange">
  <!-- 我是哈哈 -->
  <swiper-item>
   <view>我是哈哈</view>
  </swiper-item>
  <!-- 我是呵呵 -->
  <swiper-item>
   <view>我是呵呵</view>
  </swiper-item>
  <!-- 我是嘿嘿 -->
  <swiper-item>
   <view>我是嘿嘿</view>
  </swiper-item>
</swiper>

2.index.wxss

/**index.wxss**/
.swiper-tab{
  width: 100%;
  border-bottom: 2rpx solid #777777;
  text-align: center;
  line-height: 80rpx;}
.swiper-tab-list{ font-size: 30rpx;
  display: inline-block;
  width: 33.33%;
  color: #777777;
}
.on{ color: #da7c0c;
  border-bottom: 5rpx solid #da7c0c;}
.swiper-box{ display: block; height: 100%; width: 100%; overflow: hidden; }
.swiper-box view{
  text-align: center;
}

3.index.js

//index.js
//获取应用实例
var app = getApp()
Page( {
 data: {
  /**
    * 页面配置
    */
  winWidth: 0,
  winHeight: 0,
  // tab切换
  currentTab: 0,
 },
 onLoad: function() {
  var that = this;
  /**
   * 获取系统信息
   */
  wx.getSystemInfo( {
   success: function( res ) {
    that.setData( {
     winWidth: res.windowWidth,
     winHeight: res.windowHeight
    });
   }
  });
 },
 /**
   * 滑动切换tab
   */
 bindChange: function( e ) {
  var that = this;
  that.setData( { currentTab: e.detail.current });
 },
 /**
  * 点击tab切换
  */
 swichNav: function( e ) {
  var that = this;
  if( this.data.currentTab === e.target.dataset.current ) {
   return false;
  } else {
   that.setData( {
    currentTab: e.target.dataset.current
   })
  }
 }
})

之前没有上传代码.这是下图的代码

demo源码点击此处本站下载

微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解

这样一个类似viewpage的顶部选项卡就出来了.

微信小程序开发中窗口底部tab栏切换页面很简单很方便.

微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解

代码:

1.app.json

//app.json
{
 "pages":[
  "pages/index/index",
  "pages/logs/logs"
 ],
 "window":{
  "backgroundTextStyle":"light",
  "navigationBarBackgroundColor": "#999999",
  "navigationBarTitleText": "tab",
  "navigationBarTextStyle":"white"
 },
  "tabBar": {
  "color": "#ccc",
  "selectedColor": "#35495e",
  "borderStyle": "white",
  "backgroundColor": "#f9f9f9",
  "list": [
   {
    "text": "首页",
    "pagePath": "pages/index/index",
    "iconPath": "images/home.png",
    "selectedIconPath": "images/home-actived.png"
   },
   {
    "text": "目录",
    "pagePath": "pages/catalogue/catalogue",
    "iconPath": "images/note.png",
    "selectedIconPath": "images/note-actived.png"
   },
   {
    "text": "我的",
    "pagePath": "pages/mine/mine",
    "iconPath": "images/profile.png",
    "selectedIconPath": "images/profile-actived.png"
   }
  ]
 }
}

pagePath是页面路径.iconPath是图片路径,icon 大小限制为40kb.
selectedIconPath:选中时的图片路径,icon 大小限制为40kb

tab Bar的最多5个,最少2个.

在pages目录下写好页面即可切换.

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
Apr 01 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
Jun 16 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
Nov 29 Javascript
vue router学习之动态路由和嵌套路由详解
Sep 21 Javascript
JavaScript:ES2019 的新特性(译)
Aug 08 Javascript
Vue formData实现图片上传
Aug 20 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 Javascript
在antd中setFieldsValue和defaultVal的用法
Oct 29 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
详解可以用在VS Code中的正则表达式小技巧
May 14 #Javascript
You might like
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
用于table内容排序
2006/07/21 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
vue axios用法教程详解
2017/07/23 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
Python的高阶函数用法实例分析
2019/04/11 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
用python实现学生管理系统
2020/07/24 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
毕业生的自我评价分享
2013/12/18 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
模范家庭事迹材料
2014/02/10 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
史上最牛的辞职信
2015/02/28 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
高中数学教学反思范文
2016/02/18 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
SQL中的连接查询详解
2022/06/21 SQL Server