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 相关文章推荐
AngularJS入门教程(一):静态模板
Dec 06 Javascript
node.js中的fs.utimes方法使用说明
Dec 15 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
JavaScript比较同一天的时间大小实例代码
Feb 09 Javascript
一个Vue页面的内存泄露分析详解
Jun 25 Javascript
原生JS实现随机点名项目的实例代码
Apr 30 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 Javascript
基于vue--key值的特殊用处详解
Jul 31 Javascript
vue操作dom元素的3种方法示例
Sep 20 Javascript
js动态生成表格(节点操作)
Jan 12 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不用正则采集速度探究总结
2008/03/24 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
PHP实现简单日历类编写
2020/08/28 PHP
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
详解JavaScript正则表达式中的global属性的使用
2015/06/16 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Python类的继承用法示例
2019/01/31 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
.NET面试问题集
2015/12/08 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
试用期自我鉴定范文
2014/03/20 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
开学典礼策划方案
2014/05/28 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
小学三年级语文教学反思
2016/03/03 职场文书