【发布时间】:2017-05-16 20:27:11
【问题描述】:
我有以下代码,可在切换单击图标 (#burger) 时打开和关闭响应式菜单 (#burger-nav)。菜单选项跳转到同一 HTML 页面中的锚点,但菜单保持打开状态。
如何在单击选项时关闭响应式菜单,以便当用户返回页面顶部时,菜单会以原始状态关闭?
$(document).ready(function(){
// ----- Responsive menu -----
( function( $ ) {
/* Run this code when the #mob-nav-toggle link has been tapped or clicked */
$( '#burger' ).on( 'touchstart click', function(e) {
e.preventDefault();
var $body = $( 'body' ),
$page = $( '#wrapper' ),
$menu = $( '#burger-nav' ),
/* Cross browser support for CSS "transition end" event */
transitionEnd = 'transitionend webkitTransitionEnd otransitionend MSTransitionEnd';
/* When the toggle menu link is clicked, animation starts */
$body.addClass( 'animating' );
/* Determine the direction of the animation and add the correct direction class depending on whether the menu was already visible. */
if ( $body.hasClass( 'menu-visible' ) ) {
$body.addClass( 'up' );
} else {
$body.addClass( 'down' );
}
/* When the animation (technically a CSS transition) has finished, remove all animating classes and either add or remove the "menu-visible" class depending whether it was visible or not previously. */
$page.on( transitionEnd, function() {
$body
.removeClass( 'animating down up' )
.toggleClass( 'menu-visible' );
$page.off( transitionEnd );
} );
} );
} )( jQuery );
HTML:
<div id="wrapper">
<header>
<nav id="burger-nav">
<ul>
<li><a href="" title="">parent link</a>
<ul>
<li><a href="#bookmark" title="">link</a></li>
<li><a href="#bookmark" title="">link</a></li>
<li><a href="#bookmark" title="">link</a></li>
<li><a href="#bookmark" title="">link</a></li>
</ul>
</li>
<li><a href="" title="">parent link</a></li>
<li><a href="" title="">parent link</a></li>
<li><a href="" title="">parent link</a></li>
</ul>
</nav>
</header>
</div>
【问题讨论】:
-
张贴html!!
-
请添加你的plunker代码
-
@bRIMOs - 完成:)
-
无法弄清楚问题出在哪里!请您在plunker 中创建一个工作示例
标签: javascript jquery