繁体   English   中英

Bootstrap 选项卡活动选项卡颜色

[英]Bootstrap tab active tab color

我正在使用 Bootstrap 选项卡控制器。 请检查我的样品

HTML

<div class="btn-group" role="group">
    <button type="button" id="shares" class="btn btn-primary" href="#one" data-toggle="tab"><span
            class="fa fa-address-card-o" aria-hidden="true"></span>
        <div class="hidden-xs">One</div>
    </button>
</div>
<div class="btn-group" role="group">
    <button type="button" id="shares" class="btn btn-primary" href="#two" data-toggle="tab"><span
            class="fa fa-address-card-o" aria-hidden="true"></span>
        <div class="hidden-xs">One</div>
    </button>
</div>

<div class="tab-content">
    <div class="tab-pane fade in active" id="one">
        One Content
    </div>
    <div class="tab-pane" id="two">
        Two Content
    </div>
</div>

我使用下面的 jQuery 代码来突出显示选定的选项卡标题。

$(document).ready(function() {
    $(".btn").click(function () {
        $(".btn").removeClass("btn-primary").addClass("btn-default");
        $(this).removeClass("btn-default").addClass("btn-primary");   
    });
});

选项卡与上述功能配合良好。 但是我需要使用 Angular JS 来完成这个功能。 你能给我建议吗?

多种方式之一

 class AppController { constructor() { this.activeTab = 'One'; } setActiveTab(tabName) { this.activeTab = tabName; } isActiveTab(tabName) { return tabName === this.activeTab; } } angular.module('app', []) .controller('appController', AppController); angular.bootstrap(document.querySelector('#root'), ['app']);
 html, body { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" integrity="sha256-NuCn4IvuZXdBaFKJOAcsU2Q3ZpwbdFisd5dux4jkQ5w=" crossorigin="anonymous" /> <div id="root" ng-controller="appController as appController"> <div class="btn-group btn-group-toggle" data-toggle="buttons"> <label class="btn btn-primary" ng-class="{'active': appController.activeTab ==='One'}"> <input ng-model="appController.activeTab" type="radio" name="options" id="option1" value="One" > One </label> <label class="btn btn-primary" ng-class="{'active': appController.activeTab ==='Two'}"> <input ng-model="appController.activeTab" type="radio" name="options" value="Two" id="option2" > Two </label> </div> <div class="tab-content"> <div class="tab-pane" ng-class="{'fade in active': appController.isActiveTab('One')}"> One Content </div> <div class="tab-pane" ng-class="{'fade in active': appController.isActiveTab('Two')}"> Two Content </div> </div> </div>

请检查这个。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
</head>
<body ng-app="app" ng-controller='appController'>
  <div class="btn-group" role="group">
      <button type="button"
             ng-init="tab_1=true;class_name_1 ='btn-primary';" 
             ng-click="class_name_1 ='btn-primary'; class_name_2='btn-default'; tab_1=true; tab_2=false" 
             class="btn {{class_name_1}}">
              <span class="fa fa-address-card-o" aria-hidden="true"></span>
              <div class="hidden-xs">One</div>
      </button>
  </div>
  <div class="btn-group" role="group">
      <button type="button"
              ng-click="class_name_2 ='btn-primary' ; class_name_1='btn-default'; tab_2=true; tab_1=false" 
              class="btn {{class_name_2}}" >
              <span class="fa fa-address-card-o" aria-hidden="true"></span>
              <div class="hidden-xs">Two</div>
      </button>
  </div>

  <div class="tab-content">
      <div class="" ng-show="tab_1">
          One Content
      </div>
      <div  ng-show="tab_2">
          Two Content
      </div>
  </div>
<script>
var app = angular.module('app', []);
app.controller('appController', function($scope) {

});
</script>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM