微信小程序开发实现的选项卡(窗口顶部/底部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 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
Aug 10 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
May 10 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 Javascript
js实现手机web图片左右滑动效果
Dec 29 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 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采集中国代理服务器网的方法
2015/06/16 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
[03:48]大碗DOTA
2019/07/25 DOTA
python练习程序批量修改文件名
2014/01/16 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
利用Python实现kNN算法的代码
2019/08/16 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
python 通过文件夹导入包的操作
2020/06/01 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
清扬洗发水广告词
2014/03/14 职场文书
矿泉水广告词
2014/03/20 职场文书
多媒体教室标语
2014/06/26 职场文书
个人求职自荐信范文
2015/03/06 职场文书