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 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
Prototype 学习 工具函数学习($w,$F方法)
Jul 12 Javascript
javascript 语法基础 想学习js的朋友可以看看
Dec 16 Javascript
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
js函数调用常用方法详解
Dec 03 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
javascript数据结构中栈的应用之符号平衡问题
Apr 11 Javascript
JS异步执行结果获取的3种解决方式
Feb 19 Javascript
详解Vue调用手机相机和相册以及上传
May 05 Javascript
vue实现输入一位数字转汉字功能
Dec 13 Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 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
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
js获取变量
2006/08/24 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
jQuery 技巧小结
2010/04/02 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
Python中装饰器学习总结
2018/02/10 Python
python hook监听事件详解
2018/10/25 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
学习Python需要哪些工具
2020/09/04 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
初中校园广播稿
2014/02/02 职场文书
525心理活动总结
2014/07/04 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
放假通知
2015/04/14 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android