Toggle
by freginold
HTML
<div class="RevealCard">
<h3 class="RevealCard-header">
<span id="collapseChar">−</span>Top five loves
</h3>
<ol class="RevealCard-list">
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
<li>Fourth item</li>
<li>Fifth item</li>
</ol>
</div>
CSS
RevealCard-header {
background: #000;
border-radius: 4px 4px 0 0;
color: #fff;
font-size: 1.2em;
font-weight: normal;
margin: 0;
padding: 0.5em;
position: relative;
}
.RevealCard-header::after {
border: 1px solid #fff;
content: "-";
height: 1.15em;
line-height: 1em;
position: absolute;
right: 0.5em;
text-align: center;
width: 1.15em;
}
.RevealCard-list {
border: 1px solid #000;
border-top: none;
margin: 0 0 2em 0;
padding-bottom: 1em;
padding-top: 1em;
}
#collapseChar {
margin-right: 3px;
}
JavaScript
var header = document.getElementsByClassName('RevealCard-header')[0];
var list = document.getElementsByClassName('RevealCard-list')[0];
var collapseChar = document.getElementById('collapseChar');
header.addEventListener('click', function(){
// toggle list on click
if (list.style.display.toLowerCase() != "none") {
// hide list
list.style.display = "none";
collapseChar.innerHTML = "+";
}
else {
// show list
list.style.display = "block";
collapseChar.innerHTML = "−";
}
})