javascript - 显示和隐藏滑动菜单的按钮

标签 javascript jquery events

我正在尝试构建一个带有触发滑动菜单的菜单按钮的标题。我可以让菜单在按下按钮时出现,但我也希望它在再次单击按钮时消失。

这是单击按钮时触发的事件。

$('#nav-button').click(function () {

    $("#slidermenu").animate({right: "0px"}, 200);

    $("body").animate({right: "300px"}, 200);    

});

我查找了 animate 方法,发现它有一个名为 done 的函数,它有两个参数。一个 promise 和一个 bool 值。所以我想我可以使用 if-statement 来检查动画是否完成,如果动画完成,按钮会将 slider 菜单发送回来。

但是我如何测试 animate().done() 是否为真?还是有更简单的方法来实现这一目标?

这是我的 fiddle

最佳答案

.is(':animated') 如果当前正在动画,将返回 true

在您想要做的事情的背景下:

if(!$('#slidermenu').is(':animated'))
{
  // Animation has finished
}

顺便说一句:

我现在只尝试在可能的情况下使用 CSS 来完成此操作。如果您使用 jQuery toggleClass 并在 CSS 中为切换类预定义 right 属性,则可以添加 CSS 过渡来处理动画。只是认为值得一提(这确实带来了它自己的兼容性问题)。

关于javascript - 显示和隐藏滑动菜单的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27038779/

相关文章:

jQuery hide() 不隐藏父级

events - 处理聚合物元素中调整大小事件的最佳实践是什么?

macos - Cocoa:模拟 Macbook 上键和多媒体键

javascript - 如何 Onload() 将焦点设置到 jQuery Handsontable

javascript - 清理 package.json "main"以用于 require

javascript - 将属性选择器与变量连接会出现语法错误

jquery - jQuery 动画完成后如何执行 .click() ?

javascript - 使用javascript来增加分数

javascript - Ajax 链接作为列表项

javascript - AJAX $.ajax 不工作