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 相关文章推荐
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
Jun 27 Javascript
js实现简单登录功能的实例代码
Nov 09 Javascript
php中给js数组赋值方法
Mar 10 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
require、backbone等重构手机图片查看器
Nov 17 Javascript
jQuery时间验证和转换为标准格式的时间格式
Mar 06 Javascript
Vue之Watcher源码解析(1)
Jul 19 Javascript
关于预加载InstantClick的问题解决方法
Sep 12 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 Javascript
webpack+vue.js构建前端工程化的详细教程
May 10 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
杏林同学录(一)
2006/10/09 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
Vue实现购物车功能
2017/04/27 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
python cookielib 登录人人网的实现代码
2012/12/19 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
python随机模块random使用方法详解
2020/02/14 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
专升本自我鉴定
2013/10/10 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
五分钟演讲稿
2014/04/30 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
退休教师欢送会致辞
2015/07/31 职场文书