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之软键盘实现(js源码)
Jan 30 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
JS自动缩小超出大小的图片
Oct 12 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
javascript下拉列表中显示树形菜单的实现方法
Nov 17 Javascript
基于gulp合并压缩Seajs模块的方式说明
Jun 14 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
React中this丢失的四种解决方法
Mar 12 Javascript
浅析vue插槽和作用域插槽的理解
Apr 22 Javascript
Vue中keep-alive的两种应用方式
Jul 15 Javascript
小程序自定义弹框效果
Nov 16 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读取IMAP邮件
2006/10/09 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
python中的函数用法入门教程
2014/09/02 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
python如何获取服务器硬件信息
2017/05/11 Python
Python continue继续循环用法总结
2018/06/10 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Django--权限Permissions的例子
2019/08/28 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
5款实用的python 工具推荐
2020/10/13 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
查询优化的一般准则有哪些
2015/03/08 面试题
研发工程师岗位职责
2014/04/28 职场文书
干部鉴定材料
2014/05/18 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
2014年测量员工作总结
2014/12/12 职场文书
医生个人年终总结
2015/02/28 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
JS数组去重详情
2021/11/07 Javascript