3 Column Off Canvas Reponsive Layout with jQuery and CSS3
| File Size: | 2.8 KB |
|---|---|
| Views Total: | 2286 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A 3 column responsive layout that automatically transforms left and right sidebars into toggleable off-canvas panels in mobile view. Built using jQuery, Html, CSS, CSS3 transitions and media queries.
How to use it:
1. Build the Html structure for the responsive layout with two sidebars.
<div class="wrapper"> <!-- Main content section --> <div class="main"> <!-- Toggle links --> <a href="#" class="btn left"><span class="entypo-left-open"></span>More </a> <a href="#" class="btn right"><span class="entypo-right-open"></span>More </a> <!-- Main content --> ... </div> <!-- Left sidebar --> <div class="sidebar left"> ... </div> <!-- Right sidebar --> <div class="sidebar right"> ... </div> </div>
2. Primary CSS styles for the 3 Column layout.
html,
body {
margin: 0;
padding: 0
}
* { box-sizing: border-box; }
html {
min-height: 100%;
height: 100%;
}
body,
.wrapper {
height: 100%;
overflow: hidden;
}
.main,
.sidebar {
position: relative;
padding: 2em;
float: left;
}
.main {
position: relative;
height: 100%;
bottom: 0;
top: 0;
width: 50%;
background: #f3f1ef;
margin-left: 25%;
}
.sidebar {
position: relative;
height: 100%;
width: 25%;
background: #a39485;
color: #fff;
}
.sidebar.left { margin-left: -75%; }
.sidebar.right { float: right; }
.btn {
position: absolute;
display: none;
top: .5em;
padding: 1em 1em 1em 1.2em;
width: auto;
line-height: 1;
text-decoration: none;
color: #004f97;
}
.btn span {
display: block;
position: absolute;
left: .1em;
top: 5px;
font-size: 2.5em;
line-height: .5;
}
.btn.right span {
left: auto;
right: 0;
}
.btn.left { left: 1.5em; }
.btn.right {
right: 1.5em;
padding-right: 1.2em;
padding-left: 1em;
}
3. Use CSS media queries to style the off-canvas sidebar in mobile view.
@media all and (max-width: 750px) {
.main,
.sidebar { padding: 3.5em 2em; }
.btn { display: block; }
.main {
position: relative;
width: 100%;
float: none;
right: 0;
margin: 0;
transition: .5s left ease, .5s right ease;
box-shadow: 0 0 10px rgba(0,0,0,.5);
z-index: 5;
}
.right .main,
.right .sidebar.left {
right: 16em;
left: auto;
}
.left .main,
.left .sidebar.right {
left: 16em;
right: auto;
}
.sidebar {
position: absolute;
float: none;
width: 16em;
height: 100%;
margin: 0;
right: 0;
top: 0;
z-index: 1;
transition: .5s right ease .5s left ease;
}
.sidebar.left {
left: 0;
right: auto;
margin-left: 0;
}
}
4. Include the necessary jQuery library at the end of the document.
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
5. The core JavaScript to toggle CSS classes based on the breakpoint specified in the CSS media queries.
jQuery(function ($) {
$('.btn.left').click(function (event) {
event.preventDefault();
$('body').toggleClass('left');
});
$('.btn.right').click(function (event) {
event.preventDefault();
$('body').toggleClass('right');
});
});
This awesome jQuery plugin is developed by AyhanALTINOK. For more Advanced Usages, please check the demo page or visit the official website.










