关闭菜单onbody点击和动画身体

时间:2016-03-13 09:38:09

标签: javascript jquery html css

之前我已经问了这个问题,但所有答案都没有用,所以我有一个示例页面webpage。我有一个重新调整大小的菜单,我想在菜单外部单击时关闭菜单,并在首次切换下拉菜单时向下设置动画,以便下拉菜单不隐藏任何内容



jQuery(document).ready(function($) {
  //open-close submenu on mobile
  $('.cd-main-nav').on('click', function(event) {
    $(this).children('ul').toggleClass('is-visible0');
  });
});

/*when the drop down is toggled*/

.cd-main-nav ul.is-visible0 {
  -webkit-transform: translateY(70px);
  -moz-transform: translateY(70px);
  -ms-transform: translateY(70px);
  -o-transform: translateY(70px);
  transform: translateY(70px);
}

<nav class="cd-main-nav">
  <ul>
    <li><a href="../index.html">Home</a></li>
    <li class="current2"><a href="mon.html">Mon</a></li>
    <li><a href="tue.html">Tue</a></li>
    <li><a href="wed.html">Wed</a></li>
  </ul>
</nav>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

只需将单击事件附加到正文,然后单击一个单击事件即可拒绝第一次单击事件。

$('html').click(function() {
//Hide the menu
});

$('.slideout-menu').click(function(event){
    event.stopPropagation();
});

警告,如果使用此技术,请注意the dangers of stopping propagation

答案 1 :(得分:0)

找到了代码。

&#13;
&#13;
jQuery(document).ready(function($) {
  //open-close submenu on mobile
  $('.cd-main-nav').on('click', function(event) {
    $(this).children('ul').toggleClass('is-visible0');
  });
});


window.addEventListener('mouseup', function(event) {
  var box = document.getElementById('menu-c');
  if (event.target != box && event.target.parentNode != box) {
    $('.cd-main-nav').children('ul').removeClass('is-visible0');
  }
});

//id="menu-c" on cd-main-nav
&#13;
&#13;
&#13;