javascript - slideToggle() 不在向上或向下滑动时设置动画

标签 javascript jquery html css slidetoggle

我正在制作下拉菜单。问题是,当单击菜单项并且菜单应该向下滑动时,它打开得晚并且没有动画。当它应该向上滑动时它也没有动画。

$('.menu-vertical .nav-menu > li').on('click', function(e) {
  e.preventDefault();
  $(this).find('ul').slideToggle('2000', 'swing');
});
.menu-vertical .nav-menu li ul {
  position: relative;
  background: #f5f5f5 !important;
  top: 0;
  display: none;
  transition: all .4s ease;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<nav class="menu-vertical">
  <ul class="nav-menu">
    <li>this is head
      <ul>
        <li>this is one</li>
        <li>this is one</li>
        <li>this is one</li>
        <li>this is one</li>
      </ul>
    </li>
    <li>head is head</li>
    <li>head is head</li>
  </ul>
</nav>

最佳答案

看起来问题可能出在您的 CSS 中的竞争过渡。

此外,幻灯片的时间应该是数字而不是字符串。当作为字符串传递时,您将获得默认的 400 毫秒计时,而不是您尝试指定的 2000 毫秒计时。

$('.menu-vertical .nav-menu > li').on('click', function(e) {
  e.preventDefault();
  $(this).find('ul').slideToggle(2000, 'swing'); // change '2000' to 2000
});
.menu-vertical .nav-menu li ul {
  position: relative;
  background: #f5f5f5 !important;
  top: 0;
  display: none;
  /*transition: all .4s ease; <- remove this bit*/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<nav class="menu-vertical">
  <ul class="nav-menu">
    <li>this is head
      <ul>
        <li>this is one</li>
        <li>this is one</li>
        <li>this is one</li>
        <li>this is one</li>
      </ul>
    </li>
    <li>head is head</li>
    <li>head is head</li>
  </ul>
</nav>

关于javascript - slideToggle() 不在向上或向下滑动时设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217292/

相关文章:

javascript - 解构返回 undefined variable

javascript - 如何在 Javascript 对象中选择具有最低 "count"的值

javascript - 如何更改 `use` 元素使用的子项的属性?

javascript - Velocity.js/Blast.js 使用 fullpage.js 触发

jquery - 如何使用 CSS 水平对齐 iframe(在屏幕中央)?

html - JSF 传递元素导致偏离结束标记

javascript - 修改 JavaScript 以使用 ASCII 字符或图像而不是文本

javascript - 通过邮件发送 jQuery 变量

javascript - 如何在给定 JavaScript 中的 Schläfli 符号的庞加莱圆盘上绘制双曲曲面分割?

html - 100% 高度布局,固定标题 + 无 JS 溢出