off canvas animated
by marusti
HTML
<div class='wrapper'>
<input data-function='swipe' id='swipe' type='checkbox'>
<nav class='menu'>
<p class="menuheading">Menü</p>
<ul>
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Products</a>
<ul>
<li><a href="#">Products Sub Menu 1</a></li>
<li><a href="#">Products Sub Menu 2</a></li>
<li><a href="#">Products Sub Menu 3</a></li>
<li><a href="#">Products Sub Menu 4</a></li>
</ul>
</li>
<li><a href="#">Services</a>
<ul>
<li><a href="#">Services Sub Menu 1</a></li>
<li><a href="#">Services Sub Menu 2</a></li>
<li><a href="#">Services Sub Menu 3</a></li>
<li><a href="#">Services Sub Menu 4</a></li>
</ul>
</li>
<li><a href="#">About</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</nav>
<div class='content'>
<label data-function='swipe' for='swipe'>
<div class="toggle">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
</label>
<h2>
inhalt
</h2>
</div>
</div>
CSS
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
body {
color: #444;
background: #444;
overflow-x: hidden;
}
.wrapper {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
min-height: 100%;
}
input[data-function*='swipe'] {
position: absolute;
opacity: 0;
}
label[data-function*='swipe'] {
position: absolute;
top: 30px;
left: 30px;
z-index: 1;
display: block;
text-align: center;
color: #444;
cursor: pointer;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transition: -webkit-transform .3s;
transition: -webkit-transform .3s;
transition: transform .3s;
transition: transform .3s, -webkit-transform .3s;
}
.content {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
padding: 80px 30px;
background: #eee;
box-shadow: 0 0 5px black;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
input[data-function*='swipe']:checked ~ .content {
-webkit-transform: translate3d(30%, 0, 0);
transform: translate3d(30%, 0, 0);
opacity: 0.4;
}
.menu {
position: absolute;
width: 30%;
color: #eee;
}
.menu a {
display: block;
/*height:100%;*/
color: #fff;
text-decoration: none;
padding: 18px 8px
}
.menu ul {
margin: 0 8px;
padding: 0;
list-style: none
}
.menu ul li {
border-top: 1px dotted;
border-bottom: 1px dotted;
}
.menu ul li a:hover {
background: #fff;
color: #444
}
.menu ul ul {
display: none;
margin-left: 30px
}
.menu ul ul li {
border: 0
}
.menu ul li.has-child > a:after {
content: ' \002295';
float: right;
}
.menuheading {
font-size: 24px;
font-weight: 700;
text-align: center
}
.toggle {
width: 28px;
height: 30px;
margin: 0;
}
.toggle div {
width: 100%;
height: 5px;
background: black;
margin: 4px auto;
...
JavaScript
$(".toggle").click(function() {
$(this).toggleClass("on");
});
$('.menu ul li')
.css({
cursor: "pointer"
})
.on('click', function() {
if ($(window).width() < 1001) {
$(this).find('ul').slideToggle();
}
})
$('.menu ul li:has(ul)').addClass('has-child');