"Responsive Menu"
Bootstrap 4.1.1 Snippet by SOJITRA

<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <!------ Include the above in your HEAD tag ----------> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway:200,300,400,600,700"> <div id="container"> <header> <div class="wrapper cf"> <nav id="main-nav"> <ul class="first-nav"> <li class="search"> <div class="form-container"> <form class="search-form" action="https://www.google.com/search" target="_blank" method="get"> <input type="text" name="q" placeholder="Search..." autocomplete="off"> </form> </div> </li> <li class="cryptocurrency"> <a href="https://www.google.com/search?q=Crypto" target="_blank">Cryptocurrency</a> <ul> <li><a href="#">Bitcoin</a></li> <li><a href="#">Ethereum</a></li> <li class="add"><a href="#" data-nav-close="false" data-add="['Litecoin','Dogecoin','Bitcoin Cash','ZCash']">Add Coin</a></li> </ul> </li> </ul> <ul class="second-nav"> <li class="devices"> <span>Devices</span> <ul> <li class="mobile"> <a href="#">Mobile Phones</a> <ul> <li><a href="#">Super Smart Phone</a></li> <li><a href="#">Thin Magic Mobile</a></li> <li><a href="#">Performance Crusher</a></li> <li><a href="#">Futuristic Experience</a></li> </ul> </li> <li class="television"> <a href="#">Televisions</a> <div class="subnav-container"> <ul> <li><a href="#">Flat Superscreen</a></li> <li><a href="#">Gigantic LED</a></li> <li><a href="#">Power Eater</a></li> <li><a href="#">3D Experience</a></li> <li><a href="#">Classic Comfort</a></li> </ul> </div> </li> <li class="camera"> <a href="#">Cameras</a> <ul> <li><a href="#">Smart Shot</a></li> <li><a href="#">Power Shooter</a></li> <li><a href="#">Easy Photo Maker</a></li> <li><a href="#">Super Pixel</a></li> </ul> </li> </ul> </li> <li class="magazines active"> <a href="#">Magazines</a> <ul> <li><a href="#">National Geographic</a></li> <li><a href="#">Scientific American</a></li> <li><a href="#">The Spectator</a></li> <li><a href="#">The Rambler</a></li> <li><a href="#">Physics World</a></li> <li><a href="#">Popular Science</a></li> <li><a href="#">Popular Mechanics</a></li> <li><a href="#">Sky & Telescope</a></li> <li><a href="#">Discover</a></li> <li><a href="#">New Scientist</a></li> <li><a href="#">Psychology Today</a></li> <li><a href="#">Wired</a></li> </ul> </li> <li class="store"> <a href="#">Store</a> <ul> <li> <a href="#">Clothes</a> <ul> <li> <a href="#">Women's Clothing</a> <ul> <li><a href="#">Tops</a></li> <li><a href="#">Dresses</a></li> <li><a href="#">Trousers</a></li> <li><a href="#">Shoes</a></li> <li><a href="#">Sale</a></li> </ul> </li> <li> <a href="#">Men's Clothing</a> <ul> <li><a href="#">Shirts</a></li> <li><a href="#">Trousers</a></li> <li><a href="#">Shoes</a></li> <li><a href="#">Sale</a></li> </ul> </li> </ul> </li> <li> <a href="#">Jewelry</a> </li> <li> <a href="#">Music</a> </li> <li> <a href="#">Grocery</a> </li> </ul> </li> <li class="collections"><a href="#">Collections</a></li> <li class="credits"><a href="#">Credits</a></li> <li class="add"><a href="#" data-nav-close="false" data-add="['Charts', 'Logs', 'Tests', 'Profile']">Add Item</a></li> </ul> <ul class="bottom-nav"> <li class="github"> <a href="https://github.com/somewebmedia" target="_blank"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> </a> </li> <li class="email"> <a href="mailto:hi@somewebmedia.com" target="_blank"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/><path d="M0 0h24v24H0z" fill="none"/></svg> </a> </li> <li class="ko-fi"> <a href="https://ko-fi.com/somewebguy" target="_blank"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.881 8.948c-.773-4.085-4.859-4.593-4.859-4.593H.723c-.604 0-.679.798-.679.798s-.082 7.324-.022 11.822c.164 2.424 2.586 2.672 2.586 2.672s8.267-.023 11.966-.049c2.438-.426 2.683-2.566 2.658-3.734 4.352.24 7.422-2.831 6.649-6.916zm-11.062 3.511c-1.246 1.453-4.011 3.976-4.011 3.976s-.121.119-.31.023c-.076-.057-.108-.09-.108-.09-.443-.441-3.368-3.049-4.034-3.954-.709-.965-1.041-2.7-.091-3.71.951-1.01 3.005-1.086 4.363.407 0 0 1.565-1.782 3.468-.963 1.904.82 1.832 3.011.723 4.311zm6.173.478c-.928.116-1.682.028-1.682.028V7.284h1.77s1.971.551 1.971 2.638c0 1.913-.985 2.667-2.059 3.015z"/></svg> </a> </li> </ul> </nav> <h1>HC Off-canvas Nav</h1> <h2>jQuery plugin for creating toggled off-canvas multi-level navigations, allowing endless nesting of submenu elements.</h2> <a class="toggle"> <span></span> Toggle Navigation </a> </div> </header> <main> <div class="wrapper"> <div class="content"> <h4>Chose position</h4> <div class="actions position"> <div><a href="#" data-demo="{position:'left'}" class="button active">Left</a></div> <div><a href="#" data-demo="{position:'right'}" class="button">Right</a></div> <div><a href="#" data-demo="{position:'top'}" class="button">Top</a></div> <div><a href="#" data-demo="{position:'bottom'}" class="button">Bottom</a></div> </div> <h4>Levels open</h4> <div class="actions levels"> <div><a href="#" data-demo="{levelOpen:'overlap', levelSpacing:40}" class="button active">Overlap levels</a></div> <div><a href="#" data-demo="{levelOpen:'expand', levelSpacing:25}" class="button">Expand levels</a></div> <div><a href="#" data-demo="{levelOpen:false, levelSpacing:25}" class="button">Unfolded levels</a></div> </div> <h4>Additional options</h4> <div class="actions checkboxes"> <div><label><input type="checkbox" data-demo="{closeOnClick:true}" checked><span></span>Close on click</label></div> <div><label><input type="checkbox" data-demo="{disableBody:true}" checked><span></span>Disable body</label></div> <div><label><input type="checkbox" data-demo="{pushContent:'#container'}" checked><span></span>Push content</label></div> <div><label><input type="checkbox" data-demo="{navTitle: 'All Categories', levelTitles:true}" checked><span></span>Main nav and level titles</label></div> <div><label><input type="checkbox" data-demo="{insertClose:true, insertBack:true}" checked><span></span>Close and back buttons</label></div> </div> </div> </div> </main> <footer> <div class="wrapper"> <a href="#" target="_blank" class="swm" title="Some Web Media"> <svg xmlns="http://www.w3.org/2000/svg" height="17" viewBox="0 0 430.24 46"> <path class="l-1" d="M0,46H44L92,0H48Z"/> <path class="l-2" d="M237.24,46h-44l-26-24.92L141.24,46h-44l-24-23,22-21.08,24,23L145.24,0h44l26,24.92L241.24,0h44Z"/> <path class="l-3" d="M386.24,46l-26-24.92L334.24,46h-44l-24-23,22-21.08,24,23L338.24,0h44l48,46h-44Z"/> </svg> </a> </div> </footer> </div>
html.hc-nav-yscroll { overflow-y: scroll } body.hc-nav-open { overflow: visible; position: fixed; width: 100%; min-height: 100% } .hc-offcanvas-nav { visibility: hidden; display: none; position: fixed; top: 0; height: 100%; z-index: 9999 } .hc-offcanvas-nav.is-ios * { cursor: pointer !important } .hc-offcanvas-nav .nav-container { position: fixed; z-index: 9998; top: 0; width: 280px; height: 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; transition: -webkit-transform .4s ease; transition: transform .4s ease; transition: transform .4s ease, -webkit-transform .4s ease } .hc-offcanvas-nav .nav-wrapper { width: 100%; height: 100%; max-height: 100vh; -ms-scroll-chaining: none; overscroll-behavior: none; box-sizing: border-box } .hc-offcanvas-nav .nav-content { height: 100%; max-height: 100vh } .hc-offcanvas-nav .nav-wrapper-0>.nav-content { overflow: scroll; overflow-x: visible; overflow-y: auto; box-sizing: border-box } .hc-offcanvas-nav ul { list-style: none; margin: 0; padding: 0 } .hc-offcanvas-nav li { position: relative; display: block } .hc-offcanvas-nav li.level-open>.nav-wrapper { visibility: visible } .hc-offcanvas-nav input[type="checkbox"] { display: none } .hc-offcanvas-nav label { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 10; cursor: pointer } .hc-offcanvas-nav a { position: relative; display: block; box-sizing: border-box; cursor: pointer } .hc-offcanvas-nav a, .hc-offcanvas-nav a:hover { text-decoration: none } .hc-offcanvas-nav .nav-item { position: relative; display: block; box-sizing: border-box } .hc-offcanvas-nav.disable-body::after, .hc-offcanvas-nav .nav-wrapper::after { content: ''; position: fixed; z-index: 9990; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; -ms-scroll-chaining: none; overscroll-behavior: none; visibility: hidden; opacity: 0; transition: visibility 0s ease .4s, opacity .4s ease } .hc-offcanvas-nav.disable-body.nav-open::after, .hc-offcanvas-nav .sub-level-open::after { visibility: visible; opacity: 1; transition-delay: .05s } .hc-offcanvas-nav:not(.nav-open)::after { pointer-events: none } .hc-offcanvas-nav.nav-levels-expand .nav-content { overflow: scroll; overflow-x: visible; overflow-y: auto; box-sizing: border-box } .hc-offcanvas-nav.nav-levels-expand .nav-wrapper::after { display: none } .hc-offcanvas-nav.nav-levels-expand ul .nav-wrapper { min-width: 0; max-height: 0; overflow: hidden; transition: height 0s ease .4s } .hc-offcanvas-nav.nav-levels-expand .level-open>.nav-wrapper { max-height: none } .hc-offcanvas-nav.nav-levels-overlap .nav-content { overflow: scroll; overflow-x: visible; overflow-y: auto; box-sizing: border-box } .hc-offcanvas-nav.nav-levels-overlap ul .nav-wrapper { position: absolute; z-index: 9999; top: 0; height: 100%; visibility: hidden; transition: visibility 0s ease .4s, -webkit-transform .4s ease; transition: visibility 0s ease .4s, transform .4s ease; transition: visibility 0s ease .4s, transform .4s ease, -webkit-transform .4s ease } .hc-offcanvas-nav.nav-levels-overlap ul li.nav-parent { position: static } .hc-offcanvas-nav.nav-levels-overlap ul li.level-open>.nav-wrapper { visibility: visible; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); transition: -webkit-transform .4s ease; transition: transform .4s ease; transition: transform .4s ease, -webkit-transform .4s ease } .hc-offcanvas-nav.nav-position-left { left: 0 } .hc-offcanvas-nav.nav-position-left .nav-container { left: 0; -webkit-transform: translate3d(-280px, 0, 0); transform: translate3d(-280px, 0, 0) } .hc-offcanvas-nav.nav-position-left.nav-levels-overlap li .nav-wrapper { left: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0) } .hc-offcanvas-nav.nav-position-right { right: 0 } .hc-offcanvas-nav.nav-position-right .nav-container { right: 0; -webkit-transform: translate3d(280px, 0, 0); transform: translate3d(280px, 0, 0) } .hc-offcanvas-nav.nav-position-right.nav-levels-overlap li .nav-wrapper { right: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0) } .hc-offcanvas-nav.nav-position-top { top: 0 } .hc-offcanvas-nav.nav-position-top .nav-container { top: 0; width: 100%; height: auto; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0) } .hc-offcanvas-nav.nav-position-top.nav-levels-overlap li .nav-wrapper { left: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0) } .hc-offcanvas-nav.nav-position-bottom { top: auto; bottom: 0 } .hc-offcanvas-nav.nav-position-bottom .nav-container { top: auto; bottom: 0; width: 100%; height: auto; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0) } .hc-offcanvas-nav.nav-position-bottom.nav-levels-overlap li .nav-wrapper { left: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0) } .hc-offcanvas-nav.nav-open[class*='hc-nav-'] div.nav-container { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0) } .hc-nav-trigger { position: absolute; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; display: none; top: 20px; z-index: 9980; width: 30px; min-height: 24px } .hc-nav-trigger span { width: 30px; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50% } .hc-nav-trigger span, .hc-nav-trigger span::before, .hc-nav-trigger span::after { display: block; position: absolute; left: 0; height: 4px; background: #34495E; transition: all .2s ease } .hc-nav-trigger span::before, .hc-nav-trigger span::after { content: ''; width: 100% } .hc-nav-trigger span::before { top: -10px } .hc-nav-trigger span::after { bottom: -10px } .hc-nav-trigger.toggle-open span { background: rgba(0, 0, 0, 0); -webkit-transform: rotate(45deg); transform: rotate(45deg) } .hc-nav-trigger.toggle-open span::before { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0) } .hc-nav-trigger.toggle-open span::after { -webkit-transform: rotate(-90deg) translate3d(10px, 0, 0); transform: rotate(-90deg) translate3d(10px, 0, 0) } .hc-offcanvas-nav::after, .hc-offcanvas-nav .nav-wrapper::after { background: rgba(0, 0, 0, 0.3) } .hc-offcanvas-nav .nav-container, .hc-offcanvas-nav .nav-wrapper, .hc-offcanvas-nav ul { background: #336ca6 } .hc-offcanvas-nav h2 { font-size: 19px; font-weight: normal; text-align: left; padding: 20px 17px; color: #1b3958 } .hc-offcanvas-nav a, .hc-offcanvas-nav .nav-item { padding: 14px 17px; font-size: 15px; color: #fff; z-index: 1; background: rgba(0, 0, 0, 0); border-bottom: 1px solid #2c5d8f } .hc-offcanvas-nav:not(.touch-device) a:hover { background: #31679e } .hc-offcanvas-nav ul:first-of-type:not(:first-child)>li:first-child:not(.nav-back):not(.nav-close)>a { border-top: 1px solid #2c5d8f; margin-top: -1px } .hc-offcanvas-nav li { text-align: left } .hc-offcanvas-nav li.nav-close a, .hc-offcanvas-nav li.nav-back a { background: #2c5d8f; border-top: 1px solid #295887; border-bottom: 1px solid #295887 } .hc-offcanvas-nav li.nav-close a:hover, .hc-offcanvas-nav li.nav-back a:hover { background: #2b5c8d } .hc-offcanvas-nav li.nav-close:not(:first-child) a, .hc-offcanvas-nav li.nav-back:not(:first-child) a { margin-top: -1px } .hc-offcanvas-nav li.nav-parent .nav-item { padding-right: 58px } .hc-offcanvas-nav li.nav-close span, .hc-offcanvas-nav li.nav-parent span.nav-next, .hc-offcanvas-nav li.nav-back span { width: 45px; position: absolute; top: 0; right: 0; bottom: 0; text-align: center; cursor: pointer; transition: background .2s ease } .hc-offcanvas-nav li.nav-close span::before, .hc-offcanvas-nav li.nav-close span::after { content: ''; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; margin-top: -3px; border-top: 2px solid #fff; border-left: 2px solid #fff } .hc-offcanvas-nav li.nav-close span::before { margin-left: -9px; -webkit-transform: rotate(135deg); transform: rotate(135deg) } .hc-offcanvas-nav li.nav-close span::after { -webkit-transform: rotate(-45deg); transform: rotate(-45deg) } .hc-offcanvas-nav a[href]:not([href="#"])>span.nav-next { border-left: 1px solid #2c5d8f } .hc-offcanvas-nav span.nav-next::before, .hc-offcanvas-nav li.nav-back span::before { content: ''; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; margin-left: -2px; box-sizing: border-box; border-top: 2px solid #fff; border-left: 2px solid #fff; -webkit-transform-origin: center; transform-origin: center } .hc-offcanvas-nav span.nav-next::before { -webkit-transform: translate(-50%, -50%) rotate(135deg); transform: translate(-50%, -50%) rotate(135deg) } .hc-offcanvas-nav li.nav-back span::before { -webkit-transform: translate(-50%, -50%) rotate(-45deg); transform: translate(-50%, -50%) rotate(-45deg) } .hc-offcanvas-nav.nav-position-left.nav-open .nav-wrapper { box-shadow: 1px 0 2px rgba(0, 0, 0, 0.2) } .hc-offcanvas-nav.nav-position-right.nav-open .nav-wrapper { box-shadow: -1px 0 2px rgba(0, 0, 0, 0.2) } .hc-offcanvas-nav.nav-position-right span.nav-next::before { margin-left: 0; margin-right: -2px; -webkit-transform: translate(-50%, -50%) rotate(-45deg); transform: translate(-50%, -50%) rotate(-45deg) } .hc-offcanvas-nav.nav-position-right li.nav-back span::before { margin-left: 0; margin-right: -2px; -webkit-transform: translate(-50%, -50%) rotate(135deg); transform: translate(-50%, -50%) rotate(135deg) } .hc-offcanvas-nav.nav-position-top.nav-open .nav-wrapper { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) } .hc-offcanvas-nav.nav-position-top span.nav-next::before { margin-left: 0; margin-right: -2px; -webkit-transform: translate(-50%, -50%) rotate(-135deg); transform: translate(-50%, -50%) rotate(-135deg) } .hc-offcanvas-nav.nav-position-top li.nav-back span::before { margin-left: 0; margin-right: -2px; -webkit-transform: translate(-50%, -50%) rotate(45deg); transform: translate(-50%, -50%) rotate(45deg) } .hc-offcanvas-nav.nav-position-bottom.nav-open .nav-wrapper { box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2) } .hc-offcanvas-nav.nav-position-bottom span.nav-next::before { margin-left: 0; margin-right: -2px; -webkit-transform: translate(-50%, -50%) rotate(45deg); transform: translate(-50%, -50%) rotate(45deg) } .hc-offcanvas-nav.nav-position-bottom li.nav-back span::before { margin-left: 0; margin-right: -2px; -webkit-transform: translate(-50%, -50%) rotate(-135deg); transform: translate(-50%, -50%) rotate(-135deg) } .hc-offcanvas-nav.nav-levels-expand .nav-container ul .nav-wrapper, .hc-offcanvas-nav.nav-levels-none .nav-container ul .nav-wrapper { box-shadow: none; background: transparent } .hc-offcanvas-nav.nav-levels-expand .nav-container ul h2, .hc-offcanvas-nav.nav-levels-none .nav-container ul h2 { display: none } .hc-offcanvas-nav.nav-levels-expand .nav-container ul ul .nav-item, .hc-offcanvas-nav.nav-levels-none .nav-container ul ul .nav-item { font-size: 14px } .hc-offcanvas-nav.nav-levels-expand .nav-container li, .hc-offcanvas-nav.nav-levels-none .nav-container li { transition: background .3s ease } .hc-offcanvas-nav.nav-levels-expand .nav-container li.level-open, .hc-offcanvas-nav.nav-levels-none .nav-container li.level-open { background: #2e6296 } .hc-offcanvas-nav.nav-levels-expand .nav-container li.level-open a, .hc-offcanvas-nav.nav-levels-none .nav-container li.level-open a { border-bottom: 1px solid #295887 } .hc-offcanvas-nav.nav-levels-expand .nav-container li.level-open a:hover, .hc-offcanvas-nav.nav-levels-none .nav-container li.level-open a:hover { background: #2f649a } .hc-offcanvas-nav.nav-levels-expand .nav-container li.level-open>.nav-item .nav-next::before, .hc-offcanvas-nav.nav-levels-none .nav-container li.level-open>.nav-item .nav-next::before { margin-top: 2px; -webkit-transform: translate(-50%, -50%) rotate(45deg); transform: translate(-50%, -50%) rotate(45deg) } .hc-offcanvas-nav.nav-levels-expand .nav-container span.nav-next::before, .hc-offcanvas-nav.nav-levels-none .nav-container span.nav-next::before { margin-top: -2px; -webkit-transform: translate(-50%, -50%) rotate(-135deg); transform: translate(-50%, -50%) rotate(-135deg) } html, body, div, span, header, ul, li, a { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline } html { height: 100% } body { font-family: 'Raleway', sans-serif; text-align: center; color: #fffce1 } h1, h2, h3, h4, h5, h6 { margin: 0 } em { font-style: italic } strong { font-weight: 600 } ol, ul { list-style: none } .cf::before, .cf::after { content: ''; display: block; height: 0; overflow: hidden } .cf::after { clear: both } #container { display: flex; flex-direction: column; min-height: 100vh; height: 100%; background: linear-gradient(-134deg, #517FA4 0%, #243949 100%) } .wrapper { max-width: 800px; margin: 0 auto; padding: 0 20px } #main-nav { display: none } header { position: relative; padding: 50px 0 20px } header h1 { font-size: 50px; font-weight: 700; text-align: center; letter-spacing: 5px; padding-bottom: 8px } header h2 { max-width: 680px; margin: auto; font-size: 20px; font-weight: 200; line-height: 1.4; text-align: center; letter-spacing: 1px; padding-bottom: 30px } header .git { display: inline-block; text-decoration: none; color: #fff; border-radius: 4px; padding: 4px 10px 4px 0; font-size: 15px; font-weight: 400; color: #fffce1; background: #54b9cb; transition: background .15s ease-in-out } header .git:hover { background: #4CA8B9 } header .git:hover svg { border-color: #54b9cb } header .git svg { width: 15px; height: 15px; fill: #fffce1; position: relative; top: 2px; padding: 0 10px; margin-right: 10px; border-right: 1px solid #4daabb; transition: border-color .15s ease-in-out } header .ver { padding-top: 15px; font-weight: 200; color: #dab977 } header .ver span { color: #fffce1 } header .toggle { position: absolute; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; display: none; top: 20px; z-index: 9980; width: 35px; min-height: 24px; position: relative; width: auto; top: auto; left: auto; float: left; display: block; cursor: pointer; box-sizing: content-box; font-size: 20px; padding-left: 55px; line-height: 24px; margin-top: 55px } header .toggle span { width: 35px; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); -webkit-transform-origin: 50% 50%; transform-origin: 50% 50% } header .toggle span, header .toggle span::before, header .toggle span::after { display: block; position: absolute; left: 0; height: 4px; background: #182631; transition: all .25s ease } header .toggle span::before, header .toggle span::after { content: ''; width: 100% } header .toggle span::before { top: -10px } header .toggle span::after { bottom: -10px } header .toggle.toggle-open span { background: rgba(0, 0, 0, 0); -webkit-transform: rotate(45deg); transform: rotate(45deg) } header .toggle.toggle-open span::before { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0) } header .toggle.toggle-open span::after { -webkit-transform: rotate(-90deg) translate3d(10px, 0, 0); transform: rotate(-90deg) translate3d(10px, 0, 0) } header .toggle:hover span, header .toggle:hover span::before, header .toggle:hover span::after { background: #dab977 } header .toggle div { display: inline-block; margin-right: 15px } footer { padding-bottom: 40px } footer .swm { display: inline-block; padding: 0 15px } footer .swm svg { display: block; width: auto; height: 17px; margin-top: 22px } footer .swm svg path { transition: fill .1s ease } footer .swm svg .l-1 { fill: #4fb5e1 } footer .swm svg .l-2 { fill: #f2c053 } footer .swm svg .l-3 { fill: #a7ce38 } footer .swm:not(:hover) svg .l-1 { fill: #466e8d } footer .swm:not(:hover) svg .l-2 { fill: #9db9cf } footer .swm:not(:hover) svg .l-3 { fill: #5989ad } main { flex: 1 0 auto; padding-bottom: 30px; text-align: left } main .content { border-top: 1px solid rgba(255, 255, 255, 0.1) } main h4 { font-size: 15px; letter-spacing: 1px; font-weight: 600; text-transform: uppercase; margin: 20px 0 } main h4:first-child { margin-top: 30px } main .actions { margin: 0 -15px; text-align: center } main .actions.checkboxes { text-align: left; padding-top: 8px } main .actions.checkboxes label { font-size: 14px; text-transform: uppercase; cursor: pointer } main .actions.checkboxes label input { display: none } main .actions.checkboxes label input:checked~span { background: #dab977 } main .actions.checkboxes label input:checked~span::before { content: ''; position: absolute; top: 50%; left: 50%; margin-top: -1px; border: solid #243949; border-width: 0 3px 3px 0; display: inline-block; padding: 5px 2px; -webkit-transform: translate(-50%, -50%) rotate(45deg); transform: translate(-50%, -50%) rotate(45deg) } main .actions.checkboxes label span { display: inline-block; position: relative; top: -1px; width: 22px; height: 22px; background: #fffce1; margin-right: 12px; vertical-align: top; transition: all .1s ease } main .actions div { padding: 0 15px 20px; box-sizing: border-box } @media screen and (min-width: 800px) { main .actions { display: flex; flex-wrap: wrap } main .actions div { float: left; flex: 1 1 33.33%; max-width: 33.33% } main .actions.position div { float: left; flex: 1 1 25%; max-width: 25% } } main .button { position: relative; display: block; padding: 18px 30px 16px; text-transform: uppercase; text-align: center; font-size: 16px; font-weight: 700; line-height: 1.4; letter-spacing: 1px; text-decoration: none; color: #243949; cursor: pointer; background: #fffce1; border-radius: 30px/80px; transition: all .1s ease } main .button:not(.active):hover { color: #d5af63 } main .button.active { background: #dab977 } .hc-offcanvas-nav .nav-wrapper-0>.nav-content { padding-bottom: 41px } .hc-offcanvas-nav h2 { font-weight: 400 } .hc-offcanvas-nav a { font-size: 16px } .hc-offcanvas-nav li.search .nav-item { padding-top: 0 } .hc-offcanvas-nav li.search input[type="text"] { width: 100%; box-sizing: border-box; border: none; border-radius: 3px; font-size: 14px; color: #fff; background: rgba(255, 255, 255, 0.12); padding: 5px 10px; box-shadow: none; outline: none } .hc-offcanvas-nav li.search input[type="text"]::-webkit-input-placeholder { color: rgba(255, 255, 255, 0.8) } .hc-offcanvas-nav li.search input[type="text"]:-ms-input-placeholder { color: rgba(255, 255, 255, 0.8) } .hc-offcanvas-nav li.search input[type="text"]::-ms-input-placeholder { color: rgba(255, 255, 255, 0.8) } .hc-offcanvas-nav li.search input[type="text"]::placeholder { color: rgba(255, 255, 255, 0.8) } .hc-offcanvas-nav li.add>a::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'add' } .hc-offcanvas-nav li.new>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'fiber_new' } .hc-offcanvas-nav li.cryptocurrency>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'local_atm' } .hc-offcanvas-nav li.devices>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'devices' } .hc-offcanvas-nav li.mobile>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'phone_android' } .hc-offcanvas-nav li.television>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'desktop_windows' } .hc-offcanvas-nav li.camera>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'camera_alt' } .hc-offcanvas-nav li.magazines>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'import_contacts' } .hc-offcanvas-nav li.store>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'store' } .hc-offcanvas-nav li.collections>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'collections' } .hc-offcanvas-nav li.credits>.nav-item::before { font-family: 'Material Icons'; font-weight: normal; font-style: normal; display: inline-block; line-height: 1; text-transform: none; text-indent: 0; letter-spacing: normal; word-wrap: normal; white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; -moz-osx-font-smoothing: grayscale; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; display: inline-block; width: 19px; height: 19px; margin-right: 15px; font-size: 19px; vertical-align: top; content: 'credit_card' } .hc-offcanvas-nav ul.bottom-nav { position: absolute; z-index: 10; bottom: 0; width: 100%; display: flex; flex-wrap: nowrap; align-items: stretch; border-top: 1px solid #2c5d8f } .hc-offcanvas-nav ul.bottom-nav li { flex: auto } .hc-offcanvas-nav ul.bottom-nav li a { padding: 10px; text-align: center; height: 100%; border-bottom: none } .hc-offcanvas-nav ul.bottom-nav li svg { fill: #fff; display: inline-block; vertical-align: middle } .hc-offcanvas-nav ul.bottom-nav li.github svg { width: 17px; height: 17px } .hc-offcanvas-nav ul.bottom-nav li.ko-fi svg { width: 21px; height: 21px } .hc-offcanvas-nav ul.bottom-nav li.email svg { width: 19px; height: 19px }
/* * HC Off-canvas Nav * =================== * Version: 3.4.1 * Author: Some Web Media * Author URL: http://somewebmedia.com * Plugin URL: https://github.com/somewebmedia/hc-offcanvas-nav * Description: jQuery plugin for creating off-canvas multi-level navigations * License: MIT */ "use strict"; function _typeof(n) { return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(n) { return typeof n } : function(n) { return n && "function" == typeof Symbol && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : typeof n })(n) }! function(_, n) { var c, L = n.document, Q = _(L.getElementsByTagName("html")[0]), U = (_(L), (/iPad|iPhone|iPod/.test(navigator.userAgent) || !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform)) && !n.MSStream), z = "ontouchstart" in n || navigator.maxTouchPoints || n.DocumentTouch && L instanceof DocumentTouch, V = function(n) { return !isNaN(parseFloat(n)) && isFinite(n) }, G = function(n) { return n.stopPropagation() }, I = function(e) { return function(n) { n.preventDefault(), n.stopPropagation(), "function" == typeof e && e() } }, J = function(n, e, t) { var a = t.children(), o = a.length, c = -1 < e ? Math.max(0, Math.min(e - 1, o)) : Math.max(0, Math.min(o + e + 1, o)); 0 === c ? t.prepend(n) : a.eq(c - 1).after(n) }, K = function(n) { return -1 !== ["left", "right"].indexOf(n) ? "x" : "y" }, R = (c = function(n) { var e = ["Webkit", "Moz", "Ms", "O"], t = (L.body || L.documentElement).style, a = n.charAt(0).toUpperCase() + n.slice(1); if (void 0 !== t[n]) return n; for (var o = 0; o < e.length; o++) if (void 0 !== t[e[o] + a]) return e[o] + a; return !1 }("transform"), function(n, e, t) { if (c) if (0 === e) n.css(c, ""); else if ("x" === K(t)) { var a = "left" === t ? e : -e; n.css(c, a ? "translate3d(".concat(a, "px,0,0)") : "") } else { var o = "top" === t ? e : -e; n.css(c, o ? "translate3d(0,".concat(o, "px,0)") : "") } else n.css(t, e) }), e = function(n, e, t) { console.warn("%cHC Off-canvas Nav:%c " + t + "%c '" + n + "'%c is now deprecated and will be removed. Use%c '" + e + "'%c instead.", "color: #fa253b", "color: default", "color: #5595c6", "color: default", "color: #5595c6", "color: default") }, X = 0; _.fn.extend({ hcOffcanvasNav: function() { var n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; if (!this.length) return this; var A = this, D = _(L.body); n.side && (e("side", "position", "option"), n.position = n.side); var H = _.extend({}, { maxWidth: 1024, pushContent: !1, position: "left", levelOpen: "overlap", levelSpacing: 40, levelTitles: !1, navTitle: null, navClass: "", disableBody: !0, closeOnClick: !0, customToggle: null, insertClose: !0, insertBack: !0, labelClose: "Close", labelBack: "Back" }, n), E = [], $ = "nav-open", F = function(n) { if (!E.length) return !1; var e = !1; "string" == typeof n && (n = [n]); for (var t = n.length, a = 0; a < t; a++) - 1 !== E.indexOf(n[a]) && (e = !0); return e }; return this.each(function() { var e = _(this); if (e.find("ul").addBack("ul").length) { var n, o, c, i, a, s, b = "hc-nav-".concat(++X), l = (n = "hc-offcanvas-".concat(X, "-style"), o = _('<style id="'.concat(n, '">')).appendTo(_("head")), c = {}, i = {}, a = function(n) { return ";" !== n.substr(-1) && (n += ";" !== n.substr(-1) ? ";" : ""), n }, { reset: function() { c = {}, i = {} }, add: function(n, e, t) { n = n.trim(), e = e.trim(), t ? (t = t.trim(), i[t] = i[t] || {}, i[t][n] = a(e)) : c[n] = a(e) }, remove: function(n, e) { n = n.trim(), e ? (e = e.trim(), void 0 !== i[e][n] && delete i[e][n]) : void 0 !== c[n] && delete c[n] }, insert: function() { var n = ""; for (var e in i) { for (var t in n += "@media screen and (".concat(e, ") {\n"), i[e]) n += "".concat(t, " { ").concat(i[e][t], " }\n"); n += "}\n" } for (var a in c) n += "".concat(a, " { ").concat(c[a], " }\n"); o.html(n) } }); e.addClass("hc-nav ".concat(b)); var t, r, p, d = _("<nav>").on("click", G), v = _('<div class="nav-container">').appendTo(d), f = null, u = {}, h = !1, m = 0, g = 0, y = 0, C = null, x = {}, k = []; H.customToggle ? s = _(H.customToggle).addClass("hc-nav-trigger ".concat(b)).on("click", q) : (s = _('<a class="hc-nav-trigger '.concat(b, '"><span></span></a>')).on("click", q), e.after(s)); var O = function() { v.css("transition", "none"), g = v.outerWidth(), y = v.outerHeight(), l.add(".hc-offcanvas-nav.".concat(b, ".nav-position-left .nav-container"), "transform: translate3d(-".concat(g, "px, 0, 0)")), l.add(".hc-offcanvas-nav.".concat(b, ".nav-position-right .nav-container"), "transform: translate3d(".concat(g, "px, 0, 0)")), l.add(".hc-offcanvas-nav.".concat(b, ".nav-position-top .nav-container"), "transform: translate3d(0, -".concat(y, "px, 0)")), l.add(".hc-offcanvas-nav.".concat(b, ".nav-position-bottom .nav-container"), "transform: translate3d(0, ".concat(y, "px, 0)")), l.insert(), v.css("transition", ""), T() }, T = function() { var n; t = v.css("transition-property").split(",")[0], n = v.css("transition-duration").split(",")[0], r = parseFloat(n) * (/\ds$/.test(n) ? 1e3 : 1), p = v.css("transition-timing-function").split(",")[0], H.pushContent && f && t && l.add(function n(e) { return "string" == typeof e ? e : e.attr("id") ? "#" + e.attr("id") : e.attr("class") ? e.prop("tagName").toLowerCase() + "." + e.attr("class").replace(/\s+/g, ".") : n(e.parent()) + " " + e.prop("tagName").toLowerCase() }(H.pushContent), "transition: ".concat(t, " ").concat(r, "ms ").concat(p)), l.insert() }, S = function(n) { var e = s.css("display"), t = !!H.maxWidth && "max-width: ".concat(H.maxWidth - 1, "px"); F("maxWidth") && l.reset(), l.add(".hc-offcanvas-nav.".concat(b), "display: block", t), l.add(".hc-nav-trigger.".concat(b), "display: ".concat(e && "none" !== e ? e : "block"), t), l.add(".hc-nav.".concat(b), "display: none", t), l.add(".hc-offcanvas-nav.".concat(b, ".nav-levels-overlap.nav-position-left li.level-open > .nav-wrapper"), "transform: translate3d(-".concat(H.levelSpacing, "px,0,0)"), t), l.add(".hc-offcanvas-nav.".concat(b, ".nav-levels-overlap.nav-position-right li.level-open > .nav-wrapper"), "transform: translate3d(".concat(H.levelSpacing, "px,0,0)"), t), l.add(".hc-offcanvas-nav.".concat(b, ".nav-levels-overlap.nav-position-top li.level-open > .nav-wrapper"), "transform: translate3d(0,-".concat(H.levelSpacing, "px,0)"), t), l.add(".hc-offcanvas-nav.".concat(b, ".nav-levels-overlap.nav-position-bottom li.level-open > .nav-wrapper"), "transform: translate3d(0,".concat(H.levelSpacing, "px,0)"), t), l.insert(), (!n || n && F("pushContent")) && ("string" == typeof H.pushContent ? (f = _(H.pushContent)).length || (f = null) : f = H.pushContent instanceof jQuery ? H.pushContent : null), v.css("transition", "none"); var a = d.hasClass($), o = ["hc-offcanvas-nav", H.navClass || "", b, H.navClass || "", "nav-levels-" + H.levelOpen || "none", "nav-position-" + H.position, H.disableBody ? "disable-body" : "", U ? "is-ios" : "", z ? "touch-device" : "", a ? $ : ""].join(" "); d.off("click").attr("class", "").addClass(o), H.disableBody && d.on("click", j), n ? O() : setTimeout(O, 1) }, w = function() { var n; u = function c(n) { var e = []; return n.each(function() { var n = _(this), o = { classes: n.attr("class"), items: [] }; n.children("li").each(function() { var n = _(this), e = n.children().filter(function() { var n = _(this); return n.is(":not(ul)") && !n.find("ul").length }).add(n.contents().filter(function() { return 3 === this.nodeType && this.nodeValue.trim() })), t = n.find("ul"), a = t.first().add(t.first().siblings("ul")); a.length && !n.data("hc-uniqid") && n.data("hc-uniqid", Math.random().toString(36).substr(2) + "-" + Math.random().toString(36).substr(2)), o.items.push({ uniqid: n.data("hc-uniqid"), classes: n.attr("class"), $content: e, subnav: a.length ? c(a) : [] }) }), e.push(o) }), e }((n = e.find("ul").addBack("ul")).first().add(n.first().siblings("ul"))) }, B = function(n) { n && (v.empty(), x = {}), function h(n, e, m, t, a) { var g = _('<div class="nav-wrapper nav-wrapper-'.concat(m, '">')).appendTo(e).on("click", G), o = _('<div class="nav-content">').appendTo(g); if (t && o.prepend("<h2>".concat(t, "</h2>")), _.each(n, function(n, e) { var u = _("<ul>").addClass(e.classes).appendTo(o); _.each(e.items, function(n, e) { var t = e.$content, a = t.find("a").addBack("a"), o = a.length ? a.clone(!0, !0).addClass("nav-item") : _('<span class="nav-item">').append(t.clone(!0, !0)).on("click", G); a.length && o.on("click", function(n) { n.stopPropagation(), a[0].click() }), "#" === o.attr("href") && o.on("click", function(n) { n.preventDefault() }), H.closeOnClick && (!1 === H.levelOpen || "none" === H.levelOpen ? o.filter("a").filter('[data-nav-close!="false"]').on("click", j) : o.filter("a").filter('[data-nav-close!="false"]').filter(function() { var n = _(this); return !e.subnav.length || n.attr("href") && "#" !== n.attr("href").charAt(0) }).on("click", j)); var c = _("<li>").addClass(e.classes).append(o); if (u.append(c), H.levelSpacing && ("expand" === H.levelOpen || !1 === H.levelOpen || "none" === H.levelOpen)) { var i = H.levelSpacing * m; i && u.css("text-indent", "".concat(i, "px")) } if (e.subnav.length) { var s = m + 1, l = e.uniqid, r = ""; if (x[s] || (x[s] = 0), c.addClass("nav-parent"), !1 !== H.levelOpen && "none" !== H.levelOpen) { var p = x[s], d = _('<span class="nav-next">').appendTo(o), v = _('<label for="'.concat(b, "-").concat(s, "-").concat(p, '">')).on("click", G), f = _('<input type="checkbox" id="'.concat(b, "-").concat(s, "-").concat(p, '">')).attr("data-level", s).attr("data-index", p).val(l).on("click", G).on("change", M); - 1 !== k.indexOf(l) && (g.addClass("sub-level-open").on("click", function() { return W(s, p) }), c.addClass("level-open"), f.prop("checked", !0)), c.prepend(f), r = !0 === H.levelTitles ? t.text().trim() : "", o.attr("href") && "#" !== o.attr("href").charAt(0) ? d.append(v) : o.prepend(v.on("click", function() { _(this).parent().trigger("click") })) } x[s]++, h(e.subnav, c, s, r, x[s] - 1) } }) }), m && void 0 !== a && !1 !== H.insertBack && "overlap" === H.levelOpen) { var c = o.children("ul"), i = _('<li class="nav-back"><a href="#">'.concat(H.labelBack || "", "<span></span></a></li>")); i.children("a").on("click", I(function() { return W(m, a) })), !0 === H.insertBack ? c.first().prepend(i) : V(H.insertBack) && J(i, H.insertBack, c) } if (0 === m && !1 !== H.insertClose) { var s = o.children("ul"), l = _('<li class="nav-close"><a href="#">'.concat(H.labelClose || "", "<span></span></a></li>")); l.children("a").on("click", I(j)), !0 === H.insertClose ? s.first().prepend(l) : V(H.insertClose) && J(l, H.insertClose, s.first().add(s.first().siblings("ul"))) } }(u, v, 0, H.navTitle) }; S(), w(), B(), D.append(d); var P = function(n, e, t) { var a = _("#".concat(b, "-").concat(n, "-").concat(e)), o = a.val(), c = a.parent("li"), i = c.closest(".nav-wrapper"); if (a.prop("checked", !1), i.removeClass("sub-level-open"), c.removeClass("level-open"), -1 !== k.indexOf(o) && k.splice(k.indexOf(o), 1), t && "overlap" === H.levelOpen && (i.off("click").on("click", G), R(v, (n - 1) * H.levelSpacing, H.position), f)) { var s = "x" === K(H.position) ? g : y; R(f, s + (n - 1) * H.levelSpacing, H.position) } }; A.settings = function(n) { return n ? H[n] : Object.assign({}, H) }, A.isOpen = function() { return d.hasClass($) }, A.open = N, A.close = j, A.update = function(n, e) { if (E = [], "object" === _typeof(n)) { for (var t in n) H[t] !== n[t] && E.push(t); H = _.extend({}, H, n), S(!0), B(!0) }(!0 === n || e) && (S(!0), w(), B(!0)) } } else console.error("%c! HC Offcanvas Nav:%c Menu must contain <ul> element.", "color: #fa253b", "color: default"); function M() { var n = _(this), e = Number(n.attr("data-level")), t = Number(n.attr("data-index")); n.prop("checked") ? function(n, e) { var t = _("#".concat(b, "-").concat(n, "-").concat(e)), a = t.val(), o = t.parent("li"), c = o.closest(".nav-wrapper"); if (c.addClass("sub-level-open"), o.addClass("level-open"), -1 === k.indexOf(a) && k.push(a), "overlap" === H.levelOpen && (c.on("click", function() { return W(n, e) }), R(v, n * H.levelSpacing, H.position), f)) { var i = "x" === K(H.position) ? g : y; R(f, i + n * H.levelSpacing, H.position) } }(e, t) : W(e, t) } function N() { if (h = !0, d.css("visibility", "visible").addClass($), s.addClass("toggle-open"), "expand" === H.levelOpen && C && clearTimeout(C), H.disableBody && (m = Q.scrollTop() || D.scrollTop(), L.documentElement.scrollHeight > L.documentElement.clientHeight && Q.addClass("hc-nav-yscroll"), D.addClass("hc-nav-open"), m && D.css("top", -m)), f) { var n = "x" === K(H.position) ? g : y; R(f, n, H.position) } setTimeout(function() { A.trigger("open", _.extend({}, H)) }, r + 1) } function j() { h = !1, f && R(f, 0), d.removeClass($), v.removeAttr("style"), s.removeClass("toggle-open"), "expand" === H.levelOpen && -1 !== ["top", "bottom"].indexOf(H.position) ? W(0) : !1 !== H.levelOpen && "none" !== H.levelOpen && (C = setTimeout(function() { W(0) }, "expand" === H.levelOpen ? r : 0)), H.disableBody && (D.removeClass("hc-nav-open"), Q.removeClass("hc-nav-yscroll"), m && (D.css("top", "").scrollTop(m), Q.scrollTop(m), m = 0)), setTimeout(function() { d.css("visibility", ""), A.trigger("close.$", _.extend({}, H)), A.trigger("close.once", _.extend({}, H)).off("close.once") }, r + 1) } function q(n) { n.preventDefault(), n.stopPropagation(), h ? j() : N() } function W(n, e) { for (var t = n; t <= Object.keys(x).length; t++) if (t == n && void 0 !== e) P(n, e, !0); else for (var a = 0; a < x[t]; a++) P(t, a, t == n) } }) } }) }(jQuery, "undefined" != typeof window ? window : this); (function($) { var $main_nav = $('#main-nav'); var $toggle = $('.toggle'); var defaultData = { maxWidth: false, customToggle: $toggle, navTitle: 'All Categories', levelTitles: true, pushContent: '#container', insertClose: 2, closeLevels: false }; // add new items to original nav $main_nav.find('li.add').children('a').on('click', function() { var $this = $(this); var $li = $this.parent(); var items = eval('(' + $this.attr('data-add') + ')'); $li.before('<li class="new"><a>'+items[0]+'</a></li>'); items.shift(); if (!items.length) { $li.remove(); } else { $this.attr('data-add', JSON.stringify(items)); } Nav.update(true); }); // call our plugin var Nav = $main_nav.hcOffcanvasNav(defaultData); // demo settings update const update = (settings) => { if (Nav.isOpen()) { Nav.on('close.once', function() { Nav.update(settings); Nav.open(); }); Nav.close(); } else { Nav.update(settings); } }; $('.actions').find('a').on('click', function(e) { e.preventDefault(); var $this = $(this).addClass('active'); var $siblings = $this.parent().siblings().children('a').removeClass('active'); var settings = eval('(' + $this.data('demo') + ')'); update(settings); }); $('.actions').find('input').on('change', function() { var $this = $(this); var settings = eval('(' + $this.data('demo') + ')'); if ($this.is(':checked')) { update(settings); } else { var removeData = {}; $.each(settings, function(index, value) { removeData[index] = false; }); update(removeData); } }); })(jQuery);

Related: See More


Questions / Comments: