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

发布时间 - 2026-01-11 02:11:42    点击率:

本文实例讲述了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>

二、效果预览

三、实现原理

选项卡的内容是显示还是隐藏是由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相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

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


# AngularJS  # tab选项卡  # js实现简单选项卡功能  # vuejs实现标签选项卡动态更改css样式的方法  # AngularJS标签页tab选项卡切换功能经典实例详解  # js实现Tab选项卡切换效果  # 基于JS实现网页中的选项卡(两种方法)  # js自定义Tab选项卡效果  # Vue.js tab实现选项卡切换  # 使用vue.js写一个tab选项卡效果  # js鼠标经过tab选项卡时实现切换延迟  # JS实现选项卡效果的代码实例  # 选项卡  # 给我  # 周杰伦  # 江南  # 这样做  # 断桥  # 之王  # 首歌  # 很忙  # 风吹过  # 千百度  # 进阶  # 夏天  # 相关内容  # 是由  # 也能  # 遍历  # 感兴趣  # 给大家  # 更多关于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速生成ASP一键建站模板并优化安全性?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  如何在宝塔面板创建新站点?  Laravel如何配置和使用缓存?(Redis代码示例)  如何快速查询网站的真实建站时间?  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何用狗爹虚拟主机快速搭建网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  北京企业网站设计制作公司,北京铁路集团官方网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  java获取注册ip实例  如何在自有机房高效搭建专业网站?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何用低价快速搭建高质量网站?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Swift开发中switch语句值绑定模式  企业网站制作这些问题要关注  Laravel如何使用withoutEvents方法临时禁用模型事件  如何构建满足综合性能需求的优质建站方案?  linux top下的 minerd 木马清除方法  JavaScript常见的五种数组去重的方式  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel PHP版本要求一览_Laravel各版本环境要求对照  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Swift中switch语句区间和元组模式匹配  如何在IIS中新建站点并配置端口与IP地址?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Laravel如何实现用户密码重置功能?(完整流程代码)  网站制作免费,什么网站能看正片电影?  Laravel如何自定义分页视图?(Pagination示例)  Laravel如何配置Horizon来管理队列?(安装和使用)  微信公众帐号开发教程之图文消息全攻略  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何正确选择百度移动适配建站域名?  ,交易猫的商品怎么发布到网站上去?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  简单实现jsp分页  Laravel怎么为数据库表字段添加索引以优化查询  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  如何在Windows虚拟主机上快速搭建网站?  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南