I've developed a simple CSS transition solution for a slide out menu with a single toggle, and would love some feedback on if anything could be simplified or improved.
Markup
<!DOCTYPE html>
<html>
<head>
<title>Slide out menu</title>
<link rel="stylesheet" href="css/main.css">
<meta name="viewport" content="initial-scale=1">
</head>
<body class="menu menu-open">
<header>
<a href="#" class="menu-toggle">Toggle</a>
</header>
<nav class="menu-side">
This is a side menu
</nav>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
(function() {
var body = $('body');
$('.menu-toggle').bind('click', function() {
body.toggleClass('menu-open');
return false;
});
})();
</script>
</body>
</html>
Styles
body {
padding-right:50px;
}
.menu {
overflow-x:hidden;
position:relative;
left:0;
}
.menu-open {
margin-left:241px;
}
.menu-open .menu-side {
left:0;
}
.menu-side,
.menu {
-webkit-transition: all 0.2s ease-in;
-moz-transition: all 0.2s ease-in;
transition: all 0.2s ease-in;
}
.menu-side {
position:fixed;
left:-231px;
top:0;
width:210px;
border-right:1px solid #000;
height:100%;
background-color:#333;
color:#fff;
padding:10px;
}