expand
by cruperman
HTML
<div class="parent">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error cumque ducimus magni odio assumenda magnam enim natus labore aperiam quibusdam ea velit fuga, incidunt dicta sint rem dolorem. Fuga, voluptatem.</p>
<div class="wrapper">
<div class="button open">open</div>
<div class="tag">lorem</div>
<div class="tag">lorddem</div>
<div class="tag">lofraem</div>
<div class="tag">lorem</div>
<div class="tag">loredm</div>
<div class="tag">lorem</div>
<div class="tag">loredm</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorfem</div>
<div class="tag">loredddm</div>
<div class="tag">lorfem</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorem</div>
<div class="tag">loredm</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorfem</div>
<div class="tag">loredddm</div>
<div class="tag">lorfem</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorem</div>
<div class="tag">loredm</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorfem</div>
<div class="tag">loredddm</div>
<div class="tag">lorfem</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorem</div>
<div class="tag">loredm</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorfem</div>
<div class="tag">loredddm</div>
<div class="tag">lorfem</div>
<div class="tag">lorfem</div>
<div class="tag">lorddem</div>
<div class="tag">lorfem</div>
<div class="tag">loredddm</div>
<div class="tag">lorfem</div>
<div class="tag">lorfem</div>
<div class="tag">loreddm</div>
<div class="button close">close</div>
</div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit....
SCSS
* {
box-sizing: border-box;
}
html, body {
margin: 0;
padding: 0;
}
.parent {
padding: 30px;
p {
margin: 12px 0;
}
}
.wrapper {
overflow: hidden;
height: 30px;
.button.open {
display: inline-block;
}
.button.close {
display: none;
}
&.open {
height: auto;
overflow: auto;
.button.open {
display: none;
}
.button.close {
display: inline-block;
}
}
}
.tag {
display: inline-block;
margin: 4px 10px 5px 0;
padding: 3px 8px;
border-radius: 3px;
background: gray;
float: left;
}
.button {
display: inline-block;
margin: 4px 10px 5px 0;
padding: 3px 8px;
border-radius: 3px;
background: purple;
&.close {
float: left;
}
}
JavaScript
var open = document.querySelector('.button.open'),
close = document.querySelector('.button.close'),
wrapper = document.querySelector('.wrapper');
open.addEventListener('click', function () {
wrapper.classList.add('open');
});
close.addEventListener('click', function () {
wrapper.classList.remove('open');
});