微信小程序开发实现的选项卡(窗口顶部/底部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制作简单柱状图实例
Jan 28 Javascript
freemarker判断对象是否为空的方法
Aug 13 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
完美实现bootstrap分页查询
Dec 09 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
webpack热模块替换(HMR)/热更新的方法
Apr 05 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
微信小程序入门之指南针
Oct 22 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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的配置文件php.ini
2006/10/09 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
PHP面向对象法则
2012/02/23 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP基本语法总结
2014/09/06 PHP
php生成QRcode实例
2014/09/22 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
新鲜出炉的js tips提示效果
2011/04/03 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
浅析JavaScript声明变量
2015/12/21 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
Angular中的$watch方法详解
2017/09/18 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python装饰器简单用法实例小结
2018/12/03 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
python 模拟登陆github的示例
2020/12/04 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
学生退学证明
2015/06/23 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle