javascript - JQuery 滑出动画不起作用

标签 javascript jquery html css

我试图在单击下一个时让一个 div 滑出,并让另一个滑入以替换它。代码在没有动画的情况下工作(当它只是 .hide() 时)。谁能告诉我为什么它不起作用?

带有 display:flex 的元素不能使用滑入和滑出 Jquery 调用吗?或者?

$("#next").click(function() {
    var current = $(".inner:visible");
    current.hide("slide", { direction: "left" }, 1000)

    var next = current.next(".inner");

    if(next.length == 0)
        next = current.siblings().filter(":first")
    next.css("display", "flex");
    });
#container {
  height: 90%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.inner {
  display: none;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: row;
  height: 100%;
  width: 95%;
}

.inner:first-of-type {
  display: flex;
}

.content {
  width: 50%;
  justify-content: center;
  align-items: center;
  font-size: 16px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p id="next">next</p>

<div id="container">
  <div class="inner">
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </p>
    </div>
  </div>
  <div class="inner">
    <div class="content">
      <p>Donec cursus convallis malesuada. Suspendisse potenti. In tempus aliquam tempus. Curabitur aliquet porta neque, eu feugiat mauris egestas et. Mauris ut dui ut est semper ullamcorper vitae eget turpis.
    </div>
  </div>
</div>

没有有问题的动画:

$("#next").click(function() {
    var current = $(".inner:visible");
    current.fadeOut(1000);

    var next = current.next(".inner");

    if(next.length == 0)
        next = current.siblings().filter(":first")
    next.css("display", "flex");
    next.fadeIn(1500);
    });
#container {
  height: 90%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.inner {
  display: none;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: row;
  height: 100%;
  width: 95%;
}

.inner:first-of-type {
  display: flex;
}

.content {
  width: 50%;
  justify-content: center;
  align-items: center;
  font-size: 16px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p id="next">next</p>

<div id="container">
  <div class="inner">
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </p>
    </div>
  </div>
  <div class="inner">
    <div class="content">
      <p>Donec cursus convallis malesuada. Suspendisse potenti. In tempus aliquam tempus. Curabitur aliquet porta neque, eu feugiat mauris egestas et. Mauris ut dui ut est semper ullamcorper vitae eget turpis.
    </div>
  </div>
</div>

最佳答案

这似乎是一个很简单的问题。 只需包括来自 jQuery UI 的缓动,一切都应该有效。 https://jqueryui.com/easing/

关于javascript - JQuery 滑出动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56532496/

相关文章:

javascript - 导航栏上的 Jquery 下拉菜单不起作用

javascript - javascript 中的闰秒在哪里?

php - 将 JQuery 图像放大与 Dynamic Bootstrap 5 Carousel 集成

javascript - 防止CKEditor过滤掉 "tel"协议(protocol)

javascript - 隐藏元素和显示元素

javascript - react js : Why I'm unable to create closure?

javascript - 将 div 从其位置动画到全屏

javascript - Ajax:发布动态 ajax 内容

html - 将鼠标悬停在导航栏链接上时如何删除此背景?

javascript - 对齐单元格javascript