CSS側邊欄,ng-click定義選中事件


本人純設計,因為喜歡前段這塊。剛好公司有這塊項目,一邊抄寫前輩們的代碼,同時寫博客也是為了自己做一些總結,方便后期查閱。

本篇小隨筆,記錄下側邊欄的寫法和ng-click點擊選中事件。因為這個工程不讓引用jQuery。所以ng-click選中事件用了一個比較笨的方法實現的。

下面是HTML頁面

<!DOCTYPE html>
<html ng-app="myApp">
<head>
    <meta charset="UTF-8">
    <title>APIM</title>
    <link rel="stylesheet" type="text/css" href="asset/bootstrap/css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="asset/css/style.css">
</head>
<body ng-controller="myindexController">

    <div class="siderbar">
        <a href="" class="sider-btn btn btn-lg {{clickStyle1}}" ng-click="click1()" style="color: rgba(255,255,255,0.8)">
            <span class="glyphicon glyphicon-th" style="margin-top: 8px"></span>
            <p>一覽</p>
        </a>
        <a href="" class="sider-btn btn btn-lg {{clickStyle2}}" ng-click="click2()" style="color: rgba(255,255,255,0.8)">
            <span class="glyphicon glyphicon-plus" style="margin-top: 8px"></span>
            <p>設計</p>
        </a>
        <a href="" class="sider-btn btn btn-lg {{clickStyle3}}" ng-click="click3()" style="color: rgba(255,255,255,0.8)">
            <span class="glyphicon glyphicon-stats" style="margin-top: 8px"></span>
            <p>統計</p>
        </a>
        <a href="" class="sider-btn btn btn-lg {{clickStyle4}}" ng-click="click4()" style="color: rgba(255,255,255,0.8)">
            <span class="glyphicon glyphicon-exclamation-sign" style="margin-top: 8px"></span>
            <p>權限</p>
        </a>
        <hr>
        <a href="" class="sider-btn btn btn-lg {{clickStyle5}}" ng-click="click5()" style="color: rgba(255,255,255,0.8)">
            <span class="glyphicon glyphicon-fire" style="margin-top: 8px"></span>
            <p>開放市場</p>
        </a>
    </div>

    <script src="asset/angular/angular.min.js"></script>
    <script src="asset/ui-router-master/release/angular-ui-router.js"></script>
    <script src="asset/js/app.js"></script>
</body>
</html>

css部分引入了angular里面的bootstrap,它和bootstrap官網里面的還是有點區別的,可以直接去angularjs官網下載。

還有就是自己寫的css樣式。同時引入了angular.min.js。因為工程還需要使用嵌套路由的方式,所以引入了ui-router.js。

還有就是自己寫的app.js。js順序按照我的結構引入就行了。

下面是側邊欄CSS樣式:

/* SIDERBAR STYLE */

.siderbar{
    background-color: #3b3934;
    border-right: 1px solid #2a251c;
    position: fixed;
    left: 0px;
    margin-top: 0px;
    height: 100%;
    width: 80px;
}

.siderbar hr{
    border: 0;
    background-color:  rgba(255,255,255,0.08);
    height: 1px;
}

.sider-btn{
    width: 80px;
    height: 80px;
    padding: 10%;
    margin-top: 2px;
}

.sider-btn p{
    color: rgba(255,255,255,0.5);
    font-size: 10px;
    margin-top: 6px;
}
/* SIDERBAR ACTIVE */
.sider-btn:active,
.sider-btn.active {
    background-color: rgba(0,0,0,0.2);!important;
    border-radius: 0;
    outline: 0;
    -webkit-box-shadow: inset 0 0px 0px rgba(0, 0, 0, .125);
    box-shadow: inset 0 0px 0px rgba(0, 0, 0, .125);
}

下面的圖片則是運行后的:

 

額,忘記說下ng-click的事件了,您如果按照上面的運行,發現點擊事件沒有了~~~

 <a href="" class="sider-btn btn btn-lg {{clickStyle2}}" ng-click="click2()" style="color: rgba(255,255,255,0.8)">
            <span class="glyphicon glyphicon-plus" style="margin-top: 8px"></span>
            <p>設計</p>
        </a>

我在<a>標簽的class中增加了{{clickStyle2}}  和 ng-click="click2()"這兩項。

同時我再app.js做了一些聲明,具體如下

var myApp = angular.module("myApp", ['ui.router']);

myApp.config(function ($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.when("", "/Home");

    $stateProvider
        .state("Home", {
            url: "/Home",
            templateUrl: "Home.html"
        });
});



//USE CLICKSTYLE SIDERBAR CLICK
myApp.controller("myindexController",function($scope){
    $scope.clickStyle1 = "active";
    $scope.click1 = function(){
        $scope.clickStyle2 = $scope.clickStyle3 = $scope.clickStyle4= $scope.clickStyle5 = "";
        $scope.clickStyle1 = "active";
    }
    $scope.click2 = function(){
        $scope.clickStyle1 = $scope.clickStyle3 = $scope.clickStyle4= $scope.clickStyle5 = "";
        $scope.clickStyle2 = "active";
    }
    $scope.click3 = function(){
        $scope.clickStyle2 = $scope.clickStyle1 = $scope.clickStyle4= $scope.clickStyle5 = "";
        $scope.clickStyle3 = "active";
    }
    $scope.click4 = function(){
        $scope.clickStyle2 = $scope.clickStyle3 = $scope.clickStyle1= $scope.clickStyle5 = "";
        $scope.clickStyle4 = "active";
    }
    $scope.click5 = function(){
        $scope.clickStyle2 = $scope.clickStyle3 = $scope.clickStyle4= $scope.clickStyle1 = "";
        $scope.clickStyle5 = "active";
    }
});

js上面部分主要是用於嵌套路由的,大家可以不管。我這邊放出來主要是因為我的click事件中有個聲明myApp。

嵌套路由這快等我寫出來了,在和大家一起分享。

 

寫這塊主要也是為了增加自己的記憶和后期的查閱。如果您剛好看到了,有更好的方法請指點下~~~不勝感激!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM