微信开发 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 Function对象扩展之延时执行函数
Jul 06 Javascript
js 对小数加法精度处理示例说明
Dec 27 Javascript
js中函数调用的两种常用方法使用介绍
Jul 17 Javascript
javascript实现框架高度随内容改变的方法
Jul 23 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
解决Extjs下拉框不显示的问题
Jun 21 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
layui结合form,table的全选、反选v1.0示例讲解
Aug 15 Javascript
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
深入理解vue-class-component源码阅读
Feb 18 Javascript
微信小程序自定义toast组件的方法详解【含动画】
May 11 Javascript
React更新渲染原理深入分析
Dec 24 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实现监控varnish缓存服务器的状态
2014/12/30 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
angular分页指令操作
2017/01/09 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python选择排序算法的实现代码
2013/11/21 Python
python模拟enum枚举类型的方法小结
2015/04/30 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python查看列的唯一值方法
2018/07/17 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
Python中Qslider控件实操详解
2021/02/20 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
项目安全员岗位职责
2015/02/15 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
参加招聘会后的感想
2015/08/10 职场文书