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;
            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;
        }

        .TabNav ul li.active1 {
            background: #FFFFFF;
        }

        .box {
            width: 1000px;
        }

        .change {
            background: cyan;
            padding: 5px 10px;
            width: 100px;
            height: 40px;
            float: left;
            border: 1px solid #ddd;
        }

        .changed {
            background-color: cadetblue;
            border: 1px solid red;
        }
    </style>
    <script src="angularjs/angular.min.js" type="text/javascript" charset="utf-8"></script>
</head>

<body>
    <div class="TabNav" ng-controller='tabcontroller'>
        <div>
            <ul ng-init='selected=0'>
                <li ng-class='{active:selected==$index}' ng-click='show($index)' ng-repeat='item in title'>{{item.name}}</li>
            </ul>
            <div class="TabCon">
                <div ng-show='selected==$index' ng-repeat='item in vm'>{{item.con}}</div>
            </div>
        </div>
        <div class="box">
            <div ng-init='selected1=0'>
                <span class="change" ng-class='{changed:selected1==$index}' ng-click='show1($index)' ng-repeat='item in title'>{{item.name}}</li>
            </div>
        </div>
    </div>
</body>
<script type="text/javascript">
    var app = angular.module('app', []);
    app.controller('tabcontroller', function ($scope) {
        $scope.title = [{ 'name': 'tab1' }, { 'name': 'tab2' }, { 'name': 'tab3' }, { 'name': 'tab4' }]
        $scope.vm = [
            { "list": "tab1", "con": "aaaaaaaaaaaaaaaaa" },
            { "list": "tab2", "con": "bbbbbbbbbbbbbbbbb" },
            { "list": "tab3", "con": "ccccccccccccccccc" },
            { "list": "tab4", "con": "ddddddddddddddddd" }
        ];
        //tab选项
        var selected = $scope.selected;
        $scope.show = function (index) {
            $scope.selected = index;
        };
        //按钮选中选项
        var selected1 = $scope.selected1;
        $scope.show1 = function (index) {
            $scope.selected1 = index;
        };
    });
</script>

</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过添加/删除 CSS 类来切换样式,并使用 ngClass 指令绑定到相应的按钮。 首先,在 HTML 中定义按钮: ```html <button ng-click="activeTab = 'tab1'" [ngClass]="{'active': activeTab === 'tab1'}">Tab 1</button> <button ng-click="activeTab = 'tab2'" [ngClass]="{'active': activeTab === 'tab2'}">Tab 2</button> <button ng-click="activeTab = 'tab3'" [ngClass]="{'active': activeTab === 'tab3'}">Tab 3</button> ``` 在上面的代码中,我们使用了 ngClass 指令来根据条件添加/删除 CSS 类。activeTab 是一个作用域变量,用于跟踪当前选定的选项卡。 接下来,定义 CSS 样式: ```css button { border: none; background-color: #ddd; color: #333; padding: 10px; margin-right: 10px; cursor: pointer; } button.active { background-color: #333; color: #fff; } ``` 这里定义了两个样式,一个是常规按钮样式,一个是选定按钮时的样式。当按钮被点击时,ngClass 指令会根据条件添加或删除 active 类,从而切换样式。 需要注意的是,ngClass 指令接受一个对象作为其值,该对象的属性名是 CSS 类名,属性值是一个布尔值,表示是否应该应用该类。在上面的代码中,我们使用了一个三元运算符来确定 active 类是否应该应用于按钮。 另外,如果您需要更多的动态样式,您也可以使用 ngStyle 指令,它接受一个对象作为其值,该对象的属性名是 CSS 属性名,属性值是一个表达式,表示该属性的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值