JSFiddle - React, Tailwind, and code Playground
by iBertel
HTML
<nav class="side-navigation">
<div class="navigation-container">
<h3>Main level</h3>
<ul>
<li class="w-sub">
<span>Menu 1</span>
<ul>
<li>
<span>Sub menu 1</span>
</li>
<li>
<span>Sub menu 2</span>
</li>
</ul>
</li>
<li class="w-sub">
<span>Menu 2</span>
<ul>
<li>
<span>Sub menu 1</span>
</li>
<li>
<span>Sub menu 2</span>
</li>
<li>
<span>Sub menu 3</span>
</li>
<li>
<span>Sub menu 4</span>
</li>
</ul>
</li>
<li>
<span>Menu 3</span>
</li>
</ul>
</div>
</nav>
SCSS
body {
font-family: sans-serif;
}
nav.side-navigation {
width: 300px;
height: 100%;
position: fixed;
background-color: #336ca6;
color: #fff;
h3 {
font-size: 20px;
padding: 10px 20px;
}
}
.navigation-container {
ul {
margin: 0;
padding: 0;
list-style: none;
background-color: #336ca6;
position: relative;
li {
overflow: hidden;
box-shadow: inset 0 1px rgba(0, 0, 0, 0.1);
span {
display: block;
padding: 10px 20px;
cursor: pointer;
color: #333;
}
&.w-sub {
ul {
background-color: #336ca6;
li {
position: relative;
//left:-100%;
//transition:all 0.3s ease-in-out 0.1s;
}
}
&.active {
// height: auto;
li {
// left:0;
}
}
}
}
}
}
JavaScript
$('.w-sub').on('click', function() {
$(this).toggleClass('active').siblings().removeClass('active');
});