微信开发 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 相关文章推荐
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
Jul 31 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
javascript的数组和常用函数详解
May 09 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
jQuery事件详解
Feb 23 Javascript
Vuex利用state保存新闻数据实例
Jun 28 Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
Aug 26 Javascript
利用JavaScript写一个简单计算器
Nov 27 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数据库开发知多少
2006/10/09 PHP
PHP文本操作类
2006/11/25 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
JavaScript面向对象编程
2008/03/02 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
Django自定义manage命令实例代码
2018/02/11 Python
python版百度语音识别功能
2019/07/09 Python
Python如何将字符串转换为日期
2020/07/31 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
Python中Yield的基本用法
2020/10/18 Python
python中uuid模块实例浅析
2020/12/29 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
帮一个朋友写的求职信
2014/08/09 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
国富论读书笔记
2015/06/26 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis