微信小程序开发实现的选项卡(窗口顶部/底部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 相关文章推荐
类似CSDN图片切换效果脚本
Sep 17 Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
Jquery对数组的操作技巧整理
Mar 25 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
Oct 19 Javascript
JavaScript条件判断_动力节点Java学院整理
Jun 26 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 Javascript
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
关于vue的npm run dev和npm run build的区别介绍
Jan 14 Javascript
vue实现在线学生录入系统
May 30 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 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读取和编写XML DOM的实现代码
2011/02/03 PHP
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
原生JS实现留言板
2020/03/26 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
python 字典(dict)按键和值排序
2016/06/28 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
NumPy排序的实现
2020/01/21 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
python绘制雷达图实例讲解
2021/01/03 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
房产继承公证书
2014/04/09 职场文书
委托书的格式
2014/08/01 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
市场营销计划书
2015/01/17 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
基于python实现银行管理系统
2021/04/20 Python
Python源码解析之List
2021/05/21 Python
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS