Это реализовано с использованием jquery
и css
. Надеюсь, это поможет вам.
var dropdown = document.querySelectorAll('.dropdown-list'),
dropdownArray = Array.prototype.slice.call(dropdown, 0);
dropdownArray.forEach(function(el) {
var button = el.querySelector('a[dropdown-prop="title"]'),
menu = el.querySelector('.dropdown-list-items'),
icon = button.querySelector('i.dropdown-icon'),
toggleDropdown = function() {
$(menu).toggleClass('dropdown-list-open');
$(icon).toggleClass('dropdown-icon-open');
};
button.addEventListener('click', toggleDropdown);
});
@import url(https://fonts.googleapis.com/css?family=Lato);
body {
font-size: 20px;
font-family: "Lato", sans-serif;
color: #ffffff;
background-color: #34495e;
}
.dropdown-list-container {
padding: 0 2.0em;
width: 250px;
list-style: none;
-webkit-transform: translateZ(0);
-webkit-backface-visibility: hidden;
}
.dropdown-list {
position: relative;
background: #16a085;
margin-bottom: 1px;
}
.dropdown-list [dropdown-prop="title"] {
color: #ffffff;
padding: 0.5em 2.0em;
display: block;
text-decoration: none;
}
.dropdown-list [dropdown-prop="title"]:hover {
background: #107360;
}
.dropdown-list-items {
transition: max-height 0.4s ease-in;
padding: 0;
max-height: 0;
list-style: none;
overflow: hidden;
}
.dropdown-list-items li a {
color: #ffffff;
display: block;
padding: 0.75em 2.0em;
background: #1abc9c;
text-decoration: none;
}
.dropdown-list-items li a:hover {
background: #148f77;
}
.dropdown-list-open {
transition: max-height 0.4s ease-out;
max-height: 15em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--List Container-->
<ul class="dropdown-list-container">
<!--Lists-->
<li class="dropdown-list">
<!--List Title-->
<a href="#" dropdown-prop="title">DASHBOARD<i class="dropdown-icon"></i></a>
</li>
<li class="dropdown-list">
<!--List Title-->
<a href="#" dropdown-prop="title">NEW PROPOSAL<i class="dropdown-icon"></i></a>
</li>
<li class="dropdown-list">
<!--List Title-->
<a href="#" dropdown-prop="title">PROPOSALS<i class="dropdown-icon"></i></a>
</li>
<!--Second List-->
<li class="dropdown-list">
<!--List Title-->
<a href="#" dropdown-prop="title">CLIENTS<i class="dropdown-icon"></i></a>
<!--List Items-->
<ul class="dropdown-list-items">
<li><a href="#">View All Clients</a></li>
<li><a href="#">Add New Clients</a></li>
</ul>
</li>
<!--Third List-->
<li class="dropdown-list">
<!--List Title-->
<a href="#" dropdown-prop="title">RISK PROFILE<i class="dropdown-icon"></i></a>
<!--List Items-->
<ul class="dropdown-list-items">
<li><a href="#">Client Risk Wizard</a></li>
<li><a href="#">Risk Questions</a></li>
<li><a href="#">Question Categories</a></li>
<li><a href="#">Wizard Pages</a></li>
</ul>
</li>
</ul>