Expand collapse script
a wip
by Akram kamal
HTML
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.css">
<script src="https://cdn.rawgit.com/js-cookie/js-cookie/master/src/js.cookie.js"></script>
<div class="collapse-headings open">Some heading here <a href="#"> </a>
<div class="collapse-content">
<p>Content here; expand and collose for this block with cookie and animation</p>
</div>
</div>
<div class="collapse-headings open">Some heading here <a href="#"> </a>
<div class="collapse-content">
<p>Content here 2; expand and collose for this block with cookie and animation</p>
</div>
</div>
CSS
.collapse-headings {
border: 1px solid transparent;
border-radius: 8px;
background-color: lightgrey;
margin: 0 auto;
padding: 15px;
height: 100%;
box-shadow: 0px 0px 11px rgb(79, 92, 107);
-webkit-transition: all .5s;
transition: all .5s;
margin-top: 25px;
}
.collapse-headings.open a:before {
content:"\f147";
display: inline;
font-size: 20px;
padding-left: 10px;
color: red;
font-family: FontAwesome;
}
.collapse-headings.close a:before {
content:"\f196";
display: inline;
font-size: 20px;
padding-left: 10px;
color: blue;
font-family: FontAwesome;
}
.collapse-headings a {
text-decoration: none !important;
float: right;
}
JavaScript
$(function () {
var initialCollapse = localStorage.collapse ;
if (initialCollapse) initialCollapse = initialCollapse.split(",")
$(".collapse-headings>a").click(function () {
var div = $(this).parent();
div.toggleClass("close open");
$(".collapse-content", div).toggle("slow");
localStorage.collapse = $(".collapse-headings").map(function () {
return $(this).hasClass("open") ? "open" : "close"
}).get()
console.log(localStorage.collapse)
return false;
})
if (initialCollapse) {
$(".collapse-headings>a").each(function (i) {
var div = $(this).parent();
div.removeClass("close open").addClass(initialCollapse[i])
$(".collapse-content", div).toggle(initialCollapse[i] !== "close");
})
}
});