ionic实现可滑动的tab选项卡切换效果


Posted in Javascript onApril 15, 2020

利用ionic的slide-box组件实现可滑动的tab,主要是监听tab点击以及slide页面滑动的事件,做相应的处理,用ng-repeat循环,优化、简略了代码,有需要的同学可以看看。

先来张效果图:

ionic实现可滑动的tab选项卡切换效果

用到的css代码:

.tab_default{ 
 border-bottom:solid 1px #F2F2F2;
 padding:6px 0;
}
.tab_select{
 border-bottom:solid 1px #3E89F5;
 box-shadow:0 -3px 8px #C1D3F0 inset;
}
.arrow-top {
 position: absolute;
 width: 0;
 height: 0; 
 top:20px; 
 border: 6px solid #3E89F5;
 border-right-color:transparent;
 border-left-color: transparent;
 border-top-color: transparent;
}
.arrow-top:after {
 content:'';
 position:absolute;
 width: 0;
 height: 0; 
 border: 12px solid #fff;
 right: -12px;
 bottom: -13px;
 border-right-color:transparent;
 border-left-color: transparent;
 border-top-color: transparent;
}

页面上html代码:

<ion-view view-title="滑动tab"> 
 <ion-content has-bouncing="false">
 <div style="display:flex;width:100%;">
 <div style="flex:1;text-align: center;" class="tab_default" ng-repeat="d in tabNames" ng-click="activeSlide($index)" ng-class="slectIndex==$index ? 'tab_select' : '' ">
 {{d}}
 <div class="arrow-top" style="left:{{15+$index*33}}%" ng-show="slectIndex==$index"></div>
 </div> 
 </div> 
 <ion-slide-box on-slide-changed="slideChanged(index)" active-slide="slideIndex" does-continue="false" show-pager="false">
 <ion-slide ng-repeat="p in pages">
 <div ng-include="p"></div>
 </ion-slide>
 </ion-slide-box>
 </ion-content>
</ion-view>

对应的controller.js代码:

$scope.tabNames=['java','html5','android'];
$scope.slectIndex=0;
$scope.activeSlide=function(index){//点击时候触发
 $scope.slectIndex=index;
 $ionicSlideBoxDelegate.slide(index);
};
$scope.slideChanged=function(index){//滑动时候触发
 $scope.slectIndex=index;
};
$scope.pages=["templates/tab01.html","templates/tab02.html","templates/tab03.html"];

tab01.html、tab02.html、tab03.html这几个都是差不多的,贴一个tab01的:

<div style="width:100%;text-align: center;padding-top:30px;">
 page 01
 <p style="margin-top:30px;">
 <img src="img/tab01.jpg" style="width:100%;"/>
 </p>
</div>

注意点:

•点击时候将当前循环的索引$index赋值给变量slideIndex,在tab中使用ng-class判断点击时候的索引和slideIndex是否一样,一样则改变相应的tab的样式;

•滑动的时候是用的slide-box的一个函数,on-slide-changed,当slide页面发发生变化的时候,会向改函数传递一个变量index标识当前slide的索引;

•如果不想滚动只点击,可以去掉on-slide-changed的监听,也可以增加一个属性,disable-scroll="true",禁止slide page滚动;

如果大家还想深入学习,可以点击两个精彩的专题:javascript选项卡操作方法汇总 jquery选项卡操作方法汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js兼容标准的表格变色效果
Jun 28 Javascript
jquery 分页控件实现代码
Nov 30 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
浅谈下拉菜单中的Option对象
May 10 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
Aug 24 Javascript
微信小程序 实战小程序实例
Oct 08 Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
ionic实现滑动的三种方式
Aug 27 #Javascript
js select实现省市区联动选择
Apr 17 #Javascript
轻松掌握JavaScript装饰者模式
Aug 27 #Javascript
node.js实现快速截图
Aug 27 #Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 #Javascript
利用Angularjs和Bootstrap前端开发案例实战
Aug 27 #Javascript
轻松掌握JavaScript享元模式
Aug 27 #Javascript
You might like
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
深入理解Python中字典的键的使用
2015/08/19 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
wxpython绘制音频效果
2019/11/18 Python
python 实现list或string按指定分段
2019/12/25 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
python RSA加密的示例
2020/12/09 Python
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
公证委托书大全
2014/04/04 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
劳动竞赛口号
2014/06/16 职场文书
土建施工员岗位职责
2014/07/16 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
护士个人总结范文
2015/02/13 职场文书
护士求职自荐信范文
2015/03/04 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python