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 相关文章推荐
JS前端框架关于重构的失败经验分享
Mar 17 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
js中iframe调用父页面的方法
Oct 30 Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 Javascript
iview table render集成switch开关的实例
Mar 14 Javascript
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
vue-cli3全面配置详解
Nov 14 Javascript
vue 对axios get pust put delete封装的实例代码
Jan 05 Javascript
JavaScript中交换值的10种方法总结
Aug 18 Javascript
jQuery实现图片切换效果
Oct 19 jQuery
微信小程序实现列表左右滑动
Nov 19 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保存和输出图片
2006/10/09 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
php类常量用法实例分析
2015/07/09 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
Python每天必学之bytes字节
2016/01/28 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
python爬取代理ip的示例
2020/12/18 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
写自荐信三大法宝
2014/01/24 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
连锁超市项目计划书
2014/09/15 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
琅琊山导游词
2015/02/05 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
政协工作总结2015
2015/05/20 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
Python装饰器的练习题
2021/11/23 Python
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python