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 相关文章推荐
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 Javascript
简单的js表单验证函数
Oct 28 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
Vue.js开发环境快速搭建教程
Mar 17 Javascript
值得分享和收藏的xmlplus组件学习教程
May 05 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
php使用COPY函数更新配置文件的方法
2015/06/18 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python抓取网页中的图片示例
2014/02/28 Python
9种python web 程序的部署方式小结
2014/06/30 Python
Python写的服务监控程序实例
2015/01/31 Python
Python中为什么要用self探讨
2015/04/14 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Python调用飞书发送消息的示例
2020/11/10 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
客户经理岗位职责
2013/12/08 职场文书
学位证书委托书
2014/09/30 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android