CSS 动画播放不流畅

标签 css animation css-animations

我有一个 <button>元素想要当这个元素被点击时,按钮向下移动 200px

onclick 中使用此代码添加类的按钮事件,因此动画将运行:

JS

function anime() {
    var element = document.getElementById("tagd");
    element.classList.toggle("visible");    
}

HTML

<button onclick="anime()" id="tagd">

CSS

.visible {
    -webkit-animation: myfirst 5s 2; /* Safari 4.0 - 8.0 */
    -webkit-animation-direction: normal; /* Safari 4.0 - 8.0 */
    animation: myfirst 5s 2;
    animation-direction: normal;
    position: relative;
}


/* Safari 4.0 - 8.0 */
@-webkit-keyframes myfirst {
    0%   {top: 0px;}
    25%  {top: 50px;}
    50%  {top: 100px;}
    75%  {top: 150px;}
    100% {top: 200px;}
} 

@keyframes myfirst {
    0%   {top: 0px;}
    25%  {top: 50px;}
    50%  {top: 100px;}
    75%  {top: 150px;}
    100% {top: 200px;}
}

所以问题是:

  • 动画下降,然后回到第一个位置。
  • 动画播放不流畅(运行会发现一步步播放不流畅)

最佳答案

因为你只是改变按钮的位置,我可以建议你以下

#tagd{ 
    transition: 5s transform
}
#tagd.visible{
    transform: translateY(200px) 
}

动画非常简单,因此使用它可以提高代码的可读性。有点微不足道,但使用“翻译”而不是“顶部”也可以提高视觉效果。

如果您愿意,请阅读更多相关信息: https://www.paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/

关于CSS 动画播放不流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56983336/

相关文章:

javascript - 用户输入的 If 语句放置(带有 code.gs、page.html、page-css.html、page-js.html 的谷歌应用程序脚本)

css - Materializecss 如何在输入的左侧获取标签

javascript - 点击对象执行某些功能

android - Activity 没有传入的过渡动画

javascript - 如何在 document.ready(function) 时运行隐藏函数和动画

jquery - 如何在此 CSS 动画末尾添加淡出效果?

jquery - 第一次使用这个 "sliding animation on menu hover with jQuery"Fiddle 悬停时如何关闭动画?

css - 为什么下面提到的十六进制颜色代码在视觉上与 6 位十六进制代码具有相同的颜色?

VB.NET文字动画

css - 如何为滚动矩形制作动画