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 函数调用规则
Sep 14 Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
js实现的下拉框二级联动效果
Apr 30 Javascript
jQuery数组处理函数整理
Aug 03 Javascript
利用yarn实现一个webpack+react种子
Oct 25 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
jQuery实现div跟随鼠标移动
Aug 20 jQuery
微信小程序开发animation心跳动画效果
Aug 16 Javascript
关闭Vue计算属性自带的缓存功能方法
Mar 02 Javascript
vue.js+element 默认提示中英文操作
Nov 11 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列出一个目录下的所有文件的代码
2012/10/09 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
python 判断一个进程是否存在
2009/04/09 Python
Python yield 使用浅析
2015/05/28 Python
Python 内置函数complex详解
2016/10/23 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
工商企业管理应届生求职信
2013/11/03 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
毕业生欢送会主持词
2014/03/31 职场文书
公司周年庆活动方案
2014/08/25 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
街道社区活动报告
2015/02/05 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
JavaScript实例 ODO List分析
2022/01/22 Javascript
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技