微信开发 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 相关文章推荐
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 Javascript
jquery显示和隐藏div特效实例
Feb 27 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
Jun 23 Javascript
jQuery在ul中显示某个li索引号的方法
Mar 17 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
javascript函数式编程实例分析
Apr 25 Javascript
省市二级联动小案例讲解
Jul 24 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
jQuery实现评论模块
Aug 19 jQuery
微信开发 使用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新手上路(十三)
2006/10/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
Python二进制串转换为通用字符串的方法
2018/07/23 Python
python交易记录整合交易类详解
2019/07/03 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2014年教研员工作总结
2014/12/23 职场文书
董事长岗位职责
2015/02/13 职场文书
毕业设计致谢词
2015/05/14 职场文书
赢在执行观后感
2015/06/16 职场文书
标准发言稿结尾
2019/07/18 职场文书