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下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
ie中js创建checkbox默认选中问题探讨
Oct 21 Javascript
javascript多行字符串的简单实现方式
May 04 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
JQuery 的跨域方法推荐_可跨任何网站
May 18 Javascript
jQuery+ajax实现实用的点赞插件代码
Jul 06 Javascript
ES6新特性八:async函数用法实例详解
Apr 21 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
angular 实现的输入框数字千分位及保留几位小数点功能示例
Jun 19 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
Node.js API详解之 readline模块用法详解
May 22 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读取IMAP邮件
2006/10/09 PHP
我的论坛源代码(九)
2006/10/09 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
基于python绘制科赫雪花
2018/06/22 Python
Python中创建二维数组
2018/10/17 Python
对Python实现累加函数的方法详解
2019/01/23 Python
django2.0扩展用户字段示例
2019/02/13 Python
Python实现点云投影到平面显示
2020/01/18 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
编码实现字符串转整型的函数
2012/06/02 面试题
《威尼斯的小艇》教学反思
2014/02/17 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
教师岗位职责
2015/02/03 职场文书
工程资料员岗位职责
2015/04/13 职场文书
法院执行局工作总结
2015/08/11 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书