微信开发 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 相关文章推荐
jquery实现树形二级菜单实例代码
Nov 20 Javascript
js 实现的可折叠留言板(附源码下载)
Jul 01 Javascript
director.js实现前端路由使用实例
Feb 03 Javascript
javascript获取重复次数最多的字符
Jul 08 Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 Javascript
javascript 操作cookies详解及实例
Feb 22 Javascript
详谈js对url进行编码和解码(三种方式的区别)
Aug 16 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
javascript json对象小技巧之键名作为变量用法分析
Nov 11 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
Antd中单个DatePicker限定时间输入范围操作
Oct 29 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中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
Javascript模板技术
2007/04/27 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
移动节点的jquery代码
2014/01/13 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
vue 实现图片懒加载功能
2020/12/31 Vue.js
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
遗传算法之Python实现代码
2017/10/10 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
python实现复制文件到指定目录
2019/10/16 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
外国语学院毕业生自荐信
2013/10/28 职场文书
护理医院见习报告
2014/11/03 职场文书
校运会广播稿
2015/08/19 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers