AngularJS实现tab选项卡的方法详解


Posted in Javascript onJuly 05, 2017

本文实例讲述了AngularJS实现tab选项卡的方法。分享给大家供大家参考,具体如下:

一、代码实现

<!DOCTYPE html>
<html ng-app='app'>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
      *{
        list-style: none;
        margin: 0;
        padding: 0;
      }
      .TabNav{
        height: 131px;
        width: 450px;
        position: relative;
        margin-left: auto;
        margin-right: auto;
        margin-top: 100px;
      }
      .TabNav ul li{
        float: left;
        background: -webkit-gradient(linear,left top,left bottom, from(#fefefe), to(#ededed));
        border: 1px solid #ccc;
        padding: 5px 0;
        width: 100px;
        text-align: center;
        margin-left: -1px;
        position: relative;
        cursor: pointer;
      }
      .TabCon{
        position: absolute;
        left: -1px;
        top: 30px;
        border: 1px solid #ccc;
        border-top: none;
        width: 403px;
        height: 100px;
      }
      .TabNav ul li.active{
        background: #FFFFFF;
        border-bottom: none;
      }
    </style>
    <script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="TabNav">
      <ul ng-init='activeTab=1'>
        <li ng-class='{active:activeTab==1}' ng-click='activeTab=1'>许嵩</li>
        <li ng-class='{active:activeTab==2}' ng-click='activeTab=2'>周杰伦</li>
        <li ng-class='{active:activeTab==3}' ng-click='activeTab=3'>林俊杰</li>
        <li ng-class='{active:activeTab==4}' ng-click='activeTab=4'>陈奕迅</li>
      </ul>
      <div class="TabCon">
        <div ng-show='activeTab==1'>断桥残雪、千百度、幻听、想象之中</div>
        <div ng-show='activeTab==2'>红尘客栈、牛仔很忙、给我一首歌的时间、听妈妈的话</div>
        <div ng-show='activeTab==3'>被风吹过的夏天、江南、一千年以后</div>
        <div ng-show='activeTab==4'>十年、K歌之王、浮夸</div>
      </div>
    </div>
  </body>
  <script type="text/javascript">
    var app=angular.module('app',[]);
    app.controller('tabcontroller',function($scope){
      var vm=$scope.vm;
    });
  </script>
</html>

二、效果预览

AngularJS实现tab选项卡的方法详解

三、实现原理

选项卡的内容是显示还是隐藏是由activeTab的值决定的,而这个值是通过选项卡上面的ng-click指令设置的,当对应选项卡的内容显示的时候,给点击的按钮添加样式,这样做虽然也能实现选项卡的内容,但是这样做的的弊端是,选项卡的内容是固定的,不好去改变,所以接下来我们将上面的代码改成下面这种形式

四、改版

<!DOCTYPE html>
<html ng-app='app'>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
      *{
        list-style: none;
        margin: 0;
        padding: 0;
      }
      .TabNav{
        height: 131px;
        position: relative;
        margin-left: 100px;
        margin-top: 100px;
      }
      .TabNav ul li{
        float: left;
        background: -webkit-gradient(linear,left top,left bottom, from(#fefefe), to(#ededed));
        border: 1px solid #ccc;
        padding: 5px 0;
        width: 100px;
        text-align: center;
        margin-left: -1px;
        position: relative;
        cursor: pointer;
      }
      .TabCon{
        position: absolute;
        left: -1px;
        top: 30px;
        border: 1px solid #ccc;
        border-top: none;
        width: 403px;
        height: 100px;
      }
      .TabNav ul li.active{
        background: #FFFFFF;
        border-bottom: none;
      }
    </style>
    <script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="TabNav" ng-controller='tabcontroller'>
      <ul ng-init='selected=0'>
        <li ng-class='{active:selected==$index}' ng-click='show($index)' ng-repeat='item in vm'>{{item.list}}</li>
      </ul>
      <div class="TabCon">
        <div ng-show='selected==$index' ng-repeat='item in vm'>{{item.con}}</div>
      </div>
    </div>
  </body>
  <script type="text/javascript">
    var app=angular.module('app',[]);
    app.controller('tabcontroller',function($scope){
      $scope.vm=[
        {"list":"许嵩","con":"断桥残雪、千百度、幻听、想象之中"},
        {"list":"周杰伦","con":"红尘客栈、牛仔很忙、给我一首歌的时间、听妈妈的话"},
        {"list":"林俊杰","con":"被风吹过的夏天、江南、一千年以后"},
        {"list":"陈奕迅","con":"十年、K歌之王、浮夸"}
      ];
      var selected=$scope.selected;
      $scope.show=function(index){
        $scope.selected=index;
      };
    });
  </script>
</html>

说明:vm这个数组里面是我们自己定义的一些假数据(这个数据实际上是可以从后台获取的),然后我们通过ng-repeat指令循环遍历出vm里面的数据,插入到页面中,$index是每个内容对象的索引值

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
js实现图片放大缩小功能后进行复杂排序的方法
Nov 08 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
jquery自动填充勾选框即把勾选框打上true
Mar 24 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
ajax跨域调用webservice的实现代码
May 09 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
node.js实现为PDF添加水印的示例代码
Dec 05 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
May 07 Javascript
vue实现搜索功能
May 28 Javascript
angularjs2中父子组件的数据传递的实例代码
Jul 05 #Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 #jQuery
jQuery常见面试题之DOM操作详析
Jul 05 #jQuery
详解基于angular-cli配置代理解决跨域请求问题
Jul 05 #Javascript
微信小程序学习之数据处理详解
Jul 05 #Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 #Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 #Javascript
You might like
如何选购合适的收音机
2021/03/01 无线电
php实现zip文件解压操作
2015/11/03 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
基于jQuery的js分页代码
2010/06/10 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
EsLint入门学习教程
2017/02/17 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
vue实现计算器功能
2020/02/22 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
python2.7+selenium2实现淘宝滑块自动认证功能
2018/02/24 Python
pandas实现选取特定索引的行
2018/04/20 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
python文件选择对话框的操作方法
2019/06/27 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
如何利用find命令查找文件
2016/11/18 面试题
民事诉讼授权委托书范文
2014/08/02 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
考研英语辞职信
2015/05/13 职场文书
社会实践单位意见
2015/06/05 职场文书
新年祝酒词大全
2015/08/11 职场文书
初中班主任心得体会
2016/01/07 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android