手机上的菜单不会消失

时间:2017-03-05 19:42:38

标签: javascript jquery

在桌面上,我的功能在点击显示效果很好,另一次点击消失,但在移动设备上点击菜单出现,另一个点击消失,但立即重新出现原因?谢谢你的帮助

(function($) {
mobileMenu = function() {
    $('.btn-responsive-menu').on('click touchstart', function(e) {
        $("#menuleft").show();
        if ($("#menuleft").position().left == -17) {
            $("#menuleft").show().animate({
                left : "-400px"
            });
        } else {
            $("#menuleft").show().animate({
                left : "-17px"
            });
        }
    });
};
})(jQuery);

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,你应该使用css类来做动画。



(function($) {
    $('.btn-responsive-menu').on('click', function(e) {
        var $menu =  $("#menuleft");
        var openClass = '-isOpen';     
        $menu.toggleClass(openClass, !$menu.hasClass(openClass));
    });
})(jQuery);

#menuleft {
  position: fixed;
  left: 0;
  top: 0;
  width: 200px;
  background: gray;
  height: 100%;
  transform: translateX(-100%);
  transition: .4s ease;
}

#menuleft.-isOpen {
  transform: translateX(0);
}

.btn-responsive-menu {
  position: absolute;
  right: 50%;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn-responsive-menu">toggle</button>
<div id="menuleft">
</div>
&#13;
&#13;
&#13;