javascript - 使用 SlideToggle 停止动画

标签 javascript jquery jquery-events slidetoggle

我有一个按钮<button class="foo">Foo</button>附加一个事件处理程序,使用 .slideToggle() 展开或折叠 block

$('.foo').on('click', function () {
  const fooBlock = $(this).next();
  fooBlock.slideToggle(() => {
    fooBlock.toggleClass('hidden');
  });

如果用户在动画转换时单击按钮,则该单击将排队。如果用户在动画已经执行时单击按钮,如何停止动画?

最佳答案

更好的解决方案是仅使用 stop(true) 在连续点击时清除队列。这意味着 UI 在动画期间仍然响应用户输入,并且还可以防止动画建立。试试这个:

$('.foo').on('click', function() {
  const fooBlock = $(this).next();
  fooBlock.stop(true).slideToggle(() => {
    fooBlock.toggleClass('hidden');
  });
});

关于javascript - 使用 SlideToggle 停止动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41982743/

相关文章:

javascript - 使用可编辑的 div 高度更改来添加和删除其他 DOM 元素的类

javascript - Bootstrap 选项卡中的两个或多个 Flexslider2

javascript - 更改 HREF 后 IE 忘记了 A-Tag 的主机名

javascript - 在 Windows 8 应用程序中显示和隐藏项目

jquery - 发送信息数组

javascript - 具有属性长度的 JQuery HasAttribute 选择器

javascript - jQuery 数据表使用实时函数多次调用事件处理程序

javascript - 显示 1 到 10 个条目(共 100 个)未显示在 jquery 数据表中

javascript - TypeScript:对象可能是 'null'

javascript - 单击子链接时如何停止垂直菜单的 Accordion 。?