微信开发 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 相关文章推荐
JS 文字符串转换unicode编码函数
May 30 Javascript
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
Jul 27 Javascript
javascript实现右侧弹出“分享到”窗口效果
Feb 01 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
微信小程序 增、删、改、查操作实例详解
Jan 13 Javascript
关于vue单文件中引用路径的处理方法
Jan 08 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
JavaScript实现的滚动公告特效【基于jQuery】
Jul 10 jQuery
20道JS原理题助你面试一臂之力(必看)
Jul 22 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
培养自己的php编码规范
2015/09/28 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
python发送邮件接收邮件示例分享
2014/01/21 Python
Python性能提升之延迟初始化
2016/12/04 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
《盘古开天地》教学反思
2014/02/28 职场文书
统计专业自荐书
2014/07/06 职场文书
读群众路线的心得体会
2014/09/03 职场文书
清明扫墓感想
2015/08/11 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers