enter link description here我想实现类似的东西:
使用自举和角度,侧边栏应隐藏/显示,并且隐藏侧边栏时页面内容应调整为全屏。
但代码不起作用,因为侧边栏的隐藏/显示不起作用。请让我知道我在这里失踪了什么。
HTML:导航栏标题和侧边栏。
<!DOCTYPE html>
<html ng-app="app">
<head>
<!-- Bootstrap homepage -->
<title>Bootstrap Theme Simply Me</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="bootstrap/css/bootstarp.min.css">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<script src="bootstrap/js/jquery-3.1.0.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
-->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="font-awesome-4.3.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.1.2/ui-bootstrap-tpls.js"></script>
<link href="styles/style.css" rel="stylesheet">
</head>
<script>
/* Code to make the sidebar hide/show */
(function() {
var app = angular.module('app', []);
app.controller('SidebarController', function($scope) {
$scope.state = false;
$scope.toggleState = function() {
$scope.state = !$scope.state;
};
});
app.directive('sidebarDirective', function() {
return {
link : function(scope, element, attr) {
scope.$watch(attr.sidebarDirective, function(newVal) {
if(newVal)
{
element.addClass('show');
return;
}
element.removeClass('show');
});
}
};
});
}())
</script>
<body ng-controller="SidebarController">
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container-fluid">
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a href="#">HOME</a>
</li>
<li>
<a href="#">PRODUCT</a>
</li>
<li>
<a href="#">THEME</a>
</li>
<li>
<a href="#">PERSONA</a>
</li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
<div id="wrapper">
<!-- Sidebar -->
<div id="sidebar-wrapper">
<a href="#" id="navigation-toggle" ng-click="toggleState()">Navigation</a>
<ul class="sidebar-nav">
<li class="sidebar-brand">
<a href="#">
Start Bootstrap
</a>
</li>
<li>
<a href="#">Dashboard</a>
</li>
<li>
<a href="#">Shortcuts</a>
</li>
<li>
<a href="#">Overview</a>
</li>
<li>
<a href="#">Events</a>
</li>
<li>
<a href="#">About</a>
</li>
<li>
<a href="#">Services</a>
</li>
<li>
<a href="#">Contact</a>
</li>
</ul>
</div>
<!-- /#sidebar-wrapper -->
</div>
<!-- /#wrapper -->
</body>
</html>
页面的CSS:
body {
background-color:#f5f5f5;
}
/* Side bar */
.navbar-fixed-top{
height:60px;
}
.navbar-nav {
text-align:center;
float:none;
}
.navbar-nav li {
display:inline-block;
float:none;
margin:auto;
vertical-align:middle;
}
.navbar-nav > li a {
font-family: 'Roboto', sans-serif;
}
#wrapper {
padding-left: 0;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
#sidebar-wrapper {
z-index: 1000;
position: fixed;
left: 250px;
width: 0;
left:280px;
top:60px;
height: 100%;
margin-left: -250px;
overflow-y: auto;
background: #e7eaed;
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
}
/* Sidebar Styles */
.sidebar-nav {
position: absolute;
top: 0;
width: 250px;
margin: 0;
padding: 0;
list-style: none;
}
.sidebar-nav li {
text-indent: 20px;
line-height: 40px;
}
.sidebar-nav li a {
display: block;
text-decoration: none;
color: #000;
}
#navigation-toggle {
position : absolute;
left : 160px;
background : rgba(3,159,244,.95);
color : white;
text-decoration : none;
padding : 20px;
}
.sidebar-nav li a:hover {
text-decoration: none;
color: #fff;
background: rgba(255,255,255,0.2);
}
.sidebar-nav li a:active,
.sidebar-nav li a:focus {
text-decoration: none;
}
.sidebar-nav > .sidebar-brand {
height: 65px;
font-size: 18px;
line-height: 60px;
}
.sidebar-nav > .sidebar-brand a {
color: #999999;
}
.sidebar-nav > .sidebar-brand a:hover {
color: #fff;
background: none;
}
@media(min-width:768px) {
#wrapper {
padding-left: 250px;
}
#sidebar-wrapper {
width: 250px;
}
#navigation-toggle {
position : absolute;
left : 160px;
background : rgba(3,159,244,.95);
color : white;
text-decoration : none;
padding : 20px;
}
}