微信开发 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的ready函数与JS的onload的区别详解
Nov 21 Javascript
jQuery打印指定区域Html页面并自动分页
Jul 04 Javascript
JS实现OCX控件的事件响应示例
Sep 17 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 Javascript
同步异步动态引入js文件的几种方法总结
Sep 23 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
bootstrap table表格插件使用详解
May 08 Javascript
javascript流程控制语句集合
Sep 18 Javascript
vue router demo详解
Oct 13 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
小程序表单认证布局及验证详解
Jun 19 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
微信开发 使用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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
js实现3D旋转相册
2020/08/02 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
python错误处理详解
2014/09/28 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python assert语句的简单使用示例
2019/07/28 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
Python any()函数的使用方法
2019/10/28 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
容易被忽略的Python内置类型
2020/09/03 Python
10张动图学会python循环与递归问题
2021/02/06 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
会计个人实习计划书
2014/08/15 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
英文慰问信
2015/02/14 职场文书
行政二审代理词
2015/05/25 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
vue3不同环境下实现配置代理
2022/05/25 Vue.js
Rust中的Struct使用示例详解
2022/08/14 Javascript