javascript - 滑入/滑出菜单问题

标签 javascript jquery html css

我一直在研究这个菜单插件,它工作正常,但是我注意到一个问题,请看这个 JSFiddle Demo

当菜单打开时,我在菜单的右上角添加了一个关闭按钮(x),当我点击关闭时它向左滑动并隐藏但是当我再次点击菜单时它没有打开但是如果你再次点击它完美无缺。

有人可以指导如何使我的自定义关闭图标完美工作,就像在外部菜单点击时一样吗?

我发现在关闭时,它删除了一个类并添加了 translate3D 的内联 css,我在我的 jquery 中做了同样的事情,但没有成功

这是我关闭的 jQuery 函数

$(document).ready(function(){
  $('.nav-close').click(function(){
    $("#mp-pusher").removeClass('mp-pushed').css("transform","translate3d(0px, 0px, 0px)");
    $(".mp-level").removeClass('mp-level-open');
  });
});

最佳答案

您要做的是保留对菜单的引用,以便您可以在事件中关闭它。

https://jsfiddle.net/ps855n8r/14/

var menuItem = new mlPushMenu( document.getElementById( 'mp-menu' ), document.getElementById( 'trigger' ) );

在您的事件中,您可以这样结束:

menuItem._resetMenu();

不要尝试使用 DOM 手动关闭它,这意味着您的 even 函数会变成这样:

$(document).ready(function(){
    $('.nav-close').click(function(el){
        menuItem._resetMenu();
    });
  });

也有助于在别处调用 mlPushMenu 对象的其他方法。在上面的例子中; menuItem 是您的引用。

关于javascript - 滑入/滑出菜单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40107583/

相关文章:

javascript - 保持所有 Accordion 选项可见,但一次打开/关闭或折叠一个

PHP 错误和 JavaScript 验证

javascript - 为什么对函数的调用必须包含在 function() 中

javascript - 使用 javascript 取消表单提交不起作用

javascript - Jquery $.get() 操作 javascript 中查询产生的数据

javascript - WebGL HTML5 游戏的纹理缓存溢出

html - 元素渲染和间距不一致

javascript - 为什么 onmouseover 和 onclick 不能一起设置 div 样式以及如何重置 onclick 设置样式而不丢失 onmouseover 的样式?

JavaScript 在外部注册事件处理程序

jquery - 过渡,以寄存器形式变换