Onclick popup menu with sub items.
Right panel menu with sub items.
by Vishnuprasad ps
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="open">Open Panel</button>
<div class="overlay"></div>
<div class="panel">
<ul class="master">
<li><a href="#">Link One</a></li>
<li><a href="#">Link Two</a></li>
<li><a href="#">Link Three</a></li>
<li><a href="#">Link Four</a></li>
</ul>
<button id="close">Close</button>
<div class="sub-panel">
<ul>
<li><a href="#">Sub Link One</a></li>
<li><a href="#">Sub Link Two</a></li>
<li><a href="#">Sub Link Three</a></li>
<li><a href="#">Sub Link Four</a></li>
<li><a href="#">Sub Link Five</a></li>
<li><a href="#">Sub Link Six</a></li>
</ul>
<button id="back">Back</button>
</div>
</div>
CSS
body {
padding: 0;
margin: 0;
height: 2000px;
font-family: sans-serif;
font-size: 14px;
overflow: hidden;
}
button {
border: 0;
background: red;
color: #fff;
font-weight: bold;
padding: 10px 40px;
cursor: pointer;
margin: 20px;
}
.overlay {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
z-index: 10;
display: none;
}
.panel {
position: fixed;
right: 0;
top: 0;
bottom: 0;
width: 300px;
height: 100%;
background: #fff;
z-index: 11;
display: none;
}
.sub-panel {
position: fixed;
right: -300px;
top: 0;
bottom: 0;
width: 300px;
height: 100%;
background: #e4e4e4;
z-index: 11;
transition: all 0.4s;
}
.sub-panel.show {
right: 0;
}
ul {
list-style: none;
padding: 0;
margin: 0;
}
ul li {
width: 100%;
}
ul li a {
width: 100%;
display: block;
background: #eee;
border-bottom: 1px solid #ddd;
text-decoration: none;
padding: 8px 14px;
margin-bottom: 1px;
color: #333;
}
JavaScript
$("#open").click(function() {
$('.panel').css('display', 'block');
$('.overlay').css('display', 'block');
$('body').css('overflow-y', 'hidden');
$('html').css('overflow-y', 'hidden');
});
$("#close, .overlay").click(function() {
$('.panel').css('display', 'none');
$('.overlay').css('display', 'none');
$('body').css('overflow-y', 'auto');
$('html').css('overflow-y', 'auto');
});
$(".master li a").click(function() {
$(".sub-panel").addClass("show");
});
$("#back").click(function() {
$(".sub-panel").removeClass("show");
});