微信开发 js实现tabs选项卡效果


Posted in Javascript onOctober 28, 2016

最近微信应用号是炒的如火如荼,热门满满,但是也可以发现搜索关键词出来,各类网站出现的还都是微信的官方文档解释。正好赶上这个热潮,这几天先把小程序技术文档看了个遍,就直接着手写案例了。很多组件微信内部已经封装完了,正好发现没有tab选项卡效果,这两天正好研究了下。思路如下: 

1、首先点击导航的时候需要两个变量,一个存储当前点击样式类,一个是其它导航默认的样式类

2、选项卡内容列表同样也需要两个变量,一个存储当前显示块,一个存储的是其它隐藏的默认块

3、使用三目运算通过点击获取导航索引,根据索引判断是否添加当前类【备注,这里我将点击事件绑定在父级导航栏,通过target对象得到点击触发的事件对象属性】

请结合如下效果图:

微信开发 js实现tabs选项卡效果

接下来直接查看源码:

demo.wxml:

<view class="tab"> 
 <view class="tab-left" bindtap="tabFun"> 
 <view class="{{tabArr.curHdIndex=='0'? 'active' : ''}}" id="tab-hd01" data-id="0">tab-hd01</view> 
 <view class="{{tabArr.curHdIndex=='1'? 'active' : ''}}" id="tab-hd02" data-id="1">tab-hd01</view> 
 <view class="{{tabArr.curHdIndex=='2'? 'active' : ''}}" id="tab-hd03" data-id="2">tab-hd01</view> 
 <view class="{{tabArr.curHdIndex=='3'? 'active' : ''}}" id="tab-hd04" data-id="3">tab-hd01</view> 
 </view> 
 
 <view class="tab-right"> 
 <view class="right-item {{tabArr.curBdIndex=='0'? 'active' : ''}}">tab-bd01</view> 
 <view class="right-item {{tabArr.curBdIndex=='1'? 'active' : ''}}">tab-bd02</view> 
 <view class="right-item {{tabArr.curBdIndex=='2'? 'active' : ''}}">tab-bd03</view> 
 <view class="right-item {{tabArr.curBdIndex=='3'? 'active' : ''}}">tab-bd04</view> 
 </view> 
</view>

demo.js:

Page( { 
 data: { 
 tabArr: { 
 curHdIndex: 0, 
 curBdIndex: 0 
 }, 
 }, 
 tabFun: function(e){ 
 //获取触发事件组件的dataset属性 
 var _datasetId=e.target.dataset.id; 
 console.log("----"+_datasetId+"----"); 
 var _obj={}; 
 _obj.curHdIndex=_datasetId; 
 _obj.curBdIndex=_datasetId; 
 this.setData({ 
 tabArr: _obj 
 }); 
 }, 
 onLoad: function( options ) { 
 alert( "------" ); 
 } 
});

demo.wxss:

.tab{ 
 display: flex; 
 flex-direction: row; 
} 
.tab-left{ 
 width: 200rpx; 
 line-height: 160%; 
 border-right: solid 1px gray; 
} 
.tab-left view{ 
 border-bottom: solid 1px red; 
} 
.tab-left .active{ 
 color: #f00; 
} 
.tab-right{ 
 line-height: 160%; 
} 
.tab-right .right-item{ 
 padding-left: 15rpx; 
 display: none; 
} 
.tab-right .right-item.active{ 
 display: block; 
}

最终演示效果如下:

微信开发 js实现tabs选项卡效果

以上仅是个人方案,如果有更好的方案,欢迎提出~

本文已被整理到了《JavaScript微信开发技巧汇总》,欢迎大家学习阅读。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Array.prototype.slice 使用扩展
Jun 09 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
javascript从作用域链谈闭包
Jul 29 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
javascript匀速动画和缓冲动画详解
Oct 20 Javascript
js实现简单的手风琴效果
Feb 27 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
实例学习JavaScript读取和写入cookie
Jan 29 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
Apr 29 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 #Javascript
Easyui的组合框的取值与赋值
Oct 28 #Javascript
JS制作适用于手机和电脑的通知信息效果
Oct 28 #Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 #Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 #Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 #Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
Oct 28 #Javascript
You might like
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
很酷的javascript loading效果代码
2008/06/18 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
Android面试宝典
2013/08/06 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
《画》教学反思
2014/04/14 职场文书
工业设计专业自荐书
2014/06/05 职场文书
森林防火宣传标语
2014/06/27 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python