微信小程序 tabs选项卡效果的实现


Posted in Javascript onJanuary 05, 2017

微信小程序 tabs选项卡效果

前言:

最近微信应用号是炒的如火如荼,热门满满,但是也可以发现搜索关键词出来,各类网站出现的还都是微信的官方文档解释。正好赶上这个热潮,这几天先把小程序技术文档看了个遍,就直接着手写案例了。很多组件微信内部已经封装完了,正好发现没有tab选项卡效果,这两天正好研究了下。思路如下:

1.首先点击导航的时候需要两个变量,一个存储当前点击样式类,一个是其它导航默认的样式类

2.选项卡内容列表同样也需要两个变量,一个存储当前显示块,一个存储的是其它隐藏的默认块

3.使用三目运算通过点击获取导航索引,根据索引判断是否添加当前类【备注,这里我将点击事件绑定在父级导航栏,通过target对象得到点击触发的事件对象属性】

请结合如下效果图:

微信小程序 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; 
}

最终演示效果如下:

微信小程序 tabs选项卡效果的实现

微信小程序 tabs选项卡效果的实现

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
代码生成器 document.write()
Apr 15 Javascript
很棒的学习jQuery的12个网站推荐
Apr 28 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
Nov 19 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
iScroll中事件点击触发两次解决方案
Mar 11 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
Mar 30 Javascript
详解Vue2.0之去掉组件click事件的native修饰
Apr 20 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 09 Javascript
jQuery密码强度验证控件使用详解
Jan 05 #Javascript
jquery广告无缝轮播实例
Jan 05 #Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
Jan 05 #Javascript
javascript添加前置0(补零)的几种方法
Jan 05 #Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 #Javascript
利用jquery禁止外层滚动条的滚动
Jan 05 #Javascript
bootstrap table配置参数例子
Jan 05 #Javascript
You might like
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python中split方法用法分析
2015/04/17 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
Pytorch转tflite方式
2020/05/25 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
求职简历中个人的自我评价
2013/12/01 职场文书
采购内勤岗位职责
2013/12/10 职场文书
大学生实习推荐信
2015/03/27 职场文书
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android