JSFiddle - React, Tailwind, and code Playground
by Manjula Dhamodharan
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<html ng-app="app">
<body>
<div class="navigation " ng-controller="SidebarController" sidebar-directive="state">
<a href="#" id="verticalMenu" ng-click="toggleState()">Menu</a>
<ul class="menuExpansion">
<li class="menuEx"><a href="#">Link1</a></li>
<li class="menuEx"><a href="#">Link2</a></li>
<li class="menuEx"><a href="#">Link3</a></li>
</ul>
</div>
</body>
</html>
CSS
body {
font-family: raleway;
}
.navigation {
left: -160px;
position: absolute;
}
#verticalMenu {
font-size: 28px;
position: absolute;
left: 160px;
color: #fff;
background: #4a90e2;
text-decoration: none;
padding: 20px;
}
.menuEx a {
background-color: #444;
color: white;
line-height: 2em;
text-decoration: none;
padding: 10px 30px;
width: 100px;
display: block
}
.menuEx a:hover {
background-color: #222;
}
.menuExpansion {
list-style: none;
margin: 0;
padding: 0
}
.show {
left: 0
}
JavaScript
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');
});
}
};
});