Skip to content

Instantly share code, notes, and snippets.

@MacKentoch
Created July 9, 2017 07:35
Show Gist options
  • Select an option

  • Save MacKentoch/c4c6d101967b653fb718dd869e4d9aaf to your computer and use it in GitHub Desktop.

Select an option

Save MacKentoch/c4c6d101967b653fb718dd869e4d9aaf to your computer and use it in GitHub Desktop.
basic html 5 admin template with collapsible side menu
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Admin basic template</title>
<style>
body {
margin: 0 !important; /*suppress all default margins*/
}
#header {
position: fixed;
z-index: 1000; /* header should be top z-index */
right: 0;
left: 0;
display: block;
height: 60px;
background-color: green;
}
#wrapper {
position: absolute;
display: block;
height: 100%;
width: 100%;
background-color: blue;
}
/*left side = side menu*/
#left-side {
z-index: 20;
position: fixed;
display: block;
top: 60px; /* relative to header height */
height: 100%;
width: 220px;
background-color: red;
}
/*left side closes (= hides)*/
.closed {
transform: translateX(-220px)!important; /* translate all left side width (out of the screen */
}
/*right side: main content*/
#right-side {
position: relative;
padding-top: 50px;
display: block;
min-height: 100%;
margin-left: 220px; /* relative to left side width */
background-color: yellow;
overflow: auto;
}
/*when left side closes / hides, right side streches*/
.stretch {
margin-left: 0px !important;
}
.animated {
transition: all .2s ease-out;
}
</style>
</head>
<body>
<div id="header">
<button id="toggleBtn">toggle side menu</button>
</div>
<div id="wrapper">
<div id="left-side" class="animated">
<p>side menu here</p>
</div>
<div id="right-side" class="animated">
<h1>
content here
</h1>
</div>
</div>
<script>
(function() {
var leftSide = document.getElementById("left-side");
var rightSide = document.getElementById("right-side");
var toggleBtn = document.getElementById("toggleBtn");
leftSide.addEventListener('click', toggle);
toggleBtn.addEventListener('click', toggle);
function toggle() {
var leftSideClasses = leftSide.className;
var rightSideClasses = rightSide.className;
var closeClass = ' closed';
var stretchClass = ' stretch';
var hasClosedClass = /closed/g;
if (hasClosedClass.test(leftSideClasses)) {
leftSide.className = leftSideClasses.replace(closeClass, '');
rightSide.className = rightSideClasses.replace(stretchClass, '');
return;
}
leftSide.className = leftSideClasses + closeClass;
rightSide.className = rightSideClasses + stretchClass;
return;
}
})();
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment