微信小程序开发实现的选项卡(窗口顶部/底部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 相关文章推荐
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
javascript实现文字图片上下滚动的具体实例
Jun 28 Javascript
Jquery easyUI 更新行示例
Mar 06 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
微信小程序 navigation API实例详解
Oct 02 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
微信小程序将字符串生成二维码图片的操作方法
Jul 17 Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
微信小程序中的列表切换功能实例代码详解
Jun 09 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
php 安全过滤函数代码
2011/05/07 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
PHP异常处理浅析
2015/05/12 PHP
取得传值的函数
2006/10/27 Javascript
jQuery使用手册之 事件处理
2007/03/24 Javascript
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
2007/09/04 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
JavaScript字符串对象
2017/01/14 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python生成数字图片代码分享
2017/10/31 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
关键字throw与throws的用法差异
2016/11/22 面试题
小学生自我评价范文
2014/01/25 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
赡养老人协议书范本
2015/08/06 职场文书
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android
PyTorch device与cuda.device用法
2022/04/03 Python