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对象、属性、事件手册集合方便查询
Jul 04 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
Apr 07 Javascript
Extjs NumberField后面加单位实现思路
Jul 30 Javascript
windows8.1+iis8.5下安装node.js开发环境
Dec 12 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
Sep 12 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
May 19 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
Oct 16 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
Nov 30 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
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入门的学习方法
2007/01/02 PHP
php仿discuz分页效果代码
2008/10/02 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
历史专业个人求职信分享
2013/12/20 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
合作协议书范本
2014/04/17 职场文书
置业顾问岗位职责
2015/02/09 职场文书
督导岗位职责范本
2015/04/10 职场文书
防震减灾主题班会
2015/08/14 职场文书
详解python字符串驻留技术
2021/05/21 Python