【问题标题】:Make a div slide up, wait 5 seconds and go down with CSS Animation让一个 div 向上滑动,等待 5 秒,然后使用 CSS Animation 向下滑动
【发布时间】:2019-01-12 17:08:36
【问题描述】:

目标是让div 向上滑动,等待 5 秒然后向下滑动。

这是我迄今为止所做的事情。

https://jsfiddle.net/j95aeduL/32/

【问题讨论】:

标签: css animation sass css-animations


【解决方案1】:

您可以使用 jQuery 轻松做到这一点。

使用.slideUp() 方法,您将能够以向上滑动的方式折叠包含内容的 div。然后使用.delay() 可以设置5 秒的延迟。要再次显示内容,请致电.slideDown()。 当您链接这些动画时,执行此操作的代码如下所示:$('.content').slideUp(500).delay(5000).slideDown(500);

需要指出的是,在使用此代码时,最好在动画或延迟正在进行时禁用按钮再次单击。否则,一旦第一个序列完成,将触发另一个序列。

这是一个工作示例。

$(document).ready(function() {
  $('button').click(function() {
    $('.content').slideUp(500).delay(5000).slideDown(500);
  });
});
.content {
  height: 200px;
  background-color: #19c63c;
  border: 1px solid #169630;
  margin: 20px;
  padding: 20px;
  opacity: 1;
}

.hide {
  opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button>Start</button>
<div class="content">content to display...</div>

如果您不想使用 jQuery 的动画,您可以使用 CSS 创建自己的动画。在这种情况下,您将创建一个 .hide 类。当它被添加到一个 div 时,它会触发上滑动画。 5 秒后,您再次将其移除。用于动画过渡的 CSS 是 transition: all .3s ease-out;

代码如下。

var delay = 5000; // delay in milliseconds

$(document).ready(function() {
  $('button').click(function() {
    $('.content').addClass('hide');
    setTimeout(function() {
      $('.content').removeClass('hide');
    }, delay);
  });
});
.content {
  height: 200px;
  background-color: #19c63c;
  border: 1px solid #169630;
  margin: 20px;
  padding: 20px;
  transition: all .3s ease-out;
}

.hide {
  height: 0;
  opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button>Start</button>
<div class="content">content to display...</div>

如果你想只用 CSS 来解决这个问题。你可以使用类似下面的东西。另见this JSFiddle。注意:动画立即开始。

.content {
  background-color: #ccc;
  height: 200px;
}

.slide-up-wait-down-animation {
  animation: pulse 6000ms;
}


@keyframes pulse {
  0% { height: 200px }
  10% { height: 0; opacity: 0; }  
  90% { height: 0; opacity: 0 }
  100% { height: 200px }
}
&lt;div class="content slide-up-wait-down-animation"&gt;content to display...&lt;/div&gt;

【讨论】:

  • 谢谢罗伊,如果这是一个有效的解决方案,我只需要使用 Scss !谢谢
  • 我添加了第二个示例,它使用 CSS 来处理动画。在 SCSS 样式表中使用这些样式。让我知道这是否正确回答了问题或是否还有其他遗漏。
  • 感谢 Roy,但我不能使用 Jquery,只能使用 css :),我不能使用 $('.content').addClass('hide'); ,还是谢谢!
  • 我明白你的意思,抱歉不够具体。我现在在标题中看到 CSS 动画。目前尚不清楚是否可以使用 JavaScript 或 jQuery。查看答案或 jsFiddle 中的最后一个示例。让我知道这是否适合您。
  • 感谢罗伊的支持!!
猜你喜欢
  • 2012-09-02
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 2019-02-12
  • 2010-12-17
  • 2011-07-13
  • 1970-01-01
相关资源
最近更新 更多