簡體   English   中英

如何使用按鈕欄作為導航選項卡

[英]How to use Button bar as navigation tabs ionic

使用令人敬畏的離子框架,我正在使用按鈕欄,如下圖所示:

在此處輸入圖片說明

但是我想要當我按下一個按鈕時,該按鈕應保持按下狀態,而其他按鈕應保持關閉狀態;當我按下第二個按鈕時,它仍將保持按下狀態,而其他按鈕則保持關閉狀態。

像這樣 :

在此處輸入圖片說明

這是代碼:

<div class="button-bar">
  <a class="button">First</a>
  <a class="button">Second</a>
  <a class="button">Third</a>
</div>

我將使用ng-class更改按鈕。

只需創建一個活動按鈕類,然后在其中添加邏輯即可。

<div class="button-bar">
    <a class="button" ng-click="clicked(1)" ng-class="{'active': var == 1}">First</a>
    <a class="button" ng-click="clicked(2)" ng-class="{'active': var == 2}">Second</a>
    <a class="button" ng-click="clicked(3)" ng-class="{'active': var == 3}">Third</a>
</div>

並在控制器中:

$scope.clicked = function(num) {
    $scope.var = num;
}

這將使Angular中的按鈕“活動”。

這是CodePen的工作演示,復制粘貼在下面。 您可以通過單擊下面的Run code snippet按鈕直接在StackOverflow上運行此代碼示例。

注意:這不是通用的解決方案,但是應該使您朝着正確的方向發展。

 angular.module('mySuperApp', ['ionic']) .controller('MyCtrl',function($scope) { $scope.button = {}; $scope.button.first = {}; $scope.button.second = {}; $scope.button.third = {}; $scope.click = function(button){ $scope.button.first.clicked = false; $scope.button.second.clicked = false; $scope.button.third.clicked = false; button.clicked = true; }; }); 
 <html ng-app="mySuperApp"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no"> <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet"> <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script> </head> <body class="padding" ng-controller="MyCtrl"> <div class="button-bar"> <a class="button" ng-model="button.first" ng-click="click(button.first)" ng-class="button.first.clicked?'button-positive':'button-energized'">First</a> <a class="button" ng-model="button.second" ng-click="click(button.second)" ng-class="button.second.clicked?'button-positive':'button-energized'">Second</a> <a class="button" ng-model="button.third" ng-click="click(button.third)" ng-class="button.third.clicked?'button-positive':'button-energized'">Third</a> </div> </body> </html> 

編輯:如果您想要像Shay建議的那樣更精簡的解決方案,可以在下面粘貼的CodePen示例上看到Ionic的完整實現。 主要區別在於單擊的函數無法像他一樣編寫,並且會產生錯誤。 無論如何,請選擇最適合您的解決方案。

 angular.module('mySuperApp', ['ionic']) .controller('MyCtrl',function($scope) { $scope.click = function(num) { $scope.var = num; } }); 
 <html ng-app="mySuperApp"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no"> <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet"> <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script> </head> <body class="padding" ng-controller="MyCtrl"> <div class="button-bar"> <a class="button" ng-click="click(1)" ng-class="{'button-positive':var==1}">First</a> <a class="button" ng-click="click(2)" ng-class="{'button-positive':var==2}">Second</a> <a class="button" ng-click="click(3)" ng-class="{'button-positive':var==3}">Third</a> </div> </body> </html> 

我認為這可能對您有幫助:

演示

的HTML

  <a href="#" class="button" id="1">First</a>
  <a href="#" class="button" id="2">Second</a>
  <a href="#" class="button" id="3">Third</a>

的CSS

a
{
    text-decoration:none;
}

.button
{
    display:inline-block;
    padding:5px;
    height:20px;
    width:60px;
    text-align:center;
    background:#0CA68F;
    color:white;
}

.active
{
    background:#188171;
}

JS

$("a").click(function()
{
  $(".button").removeClass("active");   
  $("#" + this.id).addClass("active");
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM