Hi,
I’m following the guidelines on this old thread in an attempt to create an animated menu icon for mobile:
It almost works, except that the mobile menu is always fixed in the open position. Is it possible to provide updated code that allows this function to work?
Here is the code used for the _nav-primary.php
<?php
// =============================================================================
// VIEWS/GLOBAL/_NAV-PRIMARY.PHP
// -----------------------------------------------------------------------------
// Outputs the primary nav.
// =============================================================================
?>
<a href="#" id="menu" class="x-btn-navbar collapsed" data-toggle="collapse" data-target=".x-nav-wrap.mobile">
<span></span>
</a>
<nav class="x-nav-wrap desktop" role="navigation">
<?php x_output_primary_navigation(); ?>
</nav>
<div class="x-nav-wrap mobile collapse">
<?php x_output_primary_navigation(); ?>
</div>
And the CSS:
#menu {
background: transparent;
font-size: 1.5em;
width: 3em;
height: auto;
box-shadow:none;
}
#menu span {
background: #27b9e5;
display: block;
position: relative;
-webkit-transform: translate3d(0,0,0);
}
#menu span,
#menu span:before,
#menu span:after {
width: 100%;
height: .2em;
-moz-transition: all 0.4s;
-o-transition: all 0.4s;
-webkit-transition: all 0.4s;
transition: all 0.4s;
-webkit-transform: translate3d(0,0,0);
}
#menu span:before,
#menu span:after {
background: #27b9e5;
content: " ";
margin-top: -.6em;
position: absolute;
}
#menu span:after {
margin-top: .6em;
}
#menu.on span {
background: transparent;
}
#menu.on span:before {
-moz-transform: rotate(45deg) translate(.5em, .4em);
-ms-transform: rotate(45deg) translate(.5em, .4em);
-o-transform: rotate(45deg) translate(.5em, .4em);
-webkit-transform: rotate(45deg) translate(.5em, .4em);
transform: rotate(45deg) translate(.5em, .4em);
}
#menu.on span:after {
-moz-transform: rotate(-45deg) translate(.45em, -.35em);
-ms-transform: rotate(-45deg) translate(.45em, -.35em);
-o-transform: rotate(-45deg) translate(.45em, -.35em);
-webkit-transform: rotate(-45deg) translate(.45em, -.35em);
transform: rotate(-45deg) translate(.45em, -.35em);
}
.x-btn-navbar.collapsed {
box-shadow:none;
}
And the javascript:
jQuery( function($) {
jQuery("#menu").on("click touchend",function(event) {
event.preventDefault();
jQuery("#menu").toggleClass('on');
});
});