微信开发 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对象,操作属性、方法详解
Aug 11 Javascript
jQuery实现两个select控件的互移操作
Dec 22 Javascript
Bootstrap源码解读模态弹出框(11)
Dec 28 Javascript
js模态对话框使用方法详解
Feb 16 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
基于react后端渲染模板引擎noox发布使用
Jan 11 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
Apr 17 Javascript
js实现坦克大战游戏
Feb 24 Javascript
基于原生js实现判断元素是否有指定class名
Jul 11 Javascript
html5 录制mp3音频支持采样率和比特率设置
Jul 15 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和ACCESS写聊天室(十)
2006/10/09 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
php搜索文件程序分享
2015/10/30 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
Python实现爬取逐浪小说的方法
2015/07/07 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
公司宣传语大全
2015/07/13 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
Mysql文件存储图文详解
2021/06/01 MySQL
python自动化八大定位元素讲解
2021/07/09 Python
Python中的变量与常量
2021/11/11 Python
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL