当前位置: 首页 > 面试题库 >

Webkit CSS动画问题-是否保留动画的结束状态?

云联
2023-03-14
问题内容

给定以下CSS3动画。…

<style type="text/css" media="screen">

.drop_box {
  -webkit-animation-name: drop;
  -webkit-animation-duration: 2s;
  -webkit-animation-iteration-count: 1;
}

@-webkit-keyframes drop {

  from {
    -webkit-transform: translateY(0px);
  }

  to {
    -webkit-transform: translateY(100px);
  }

}
</style>

<div class="drop_box">  
    Hello world
</div>

“ Hello World”文本动画会按预期下降100px。但是,在动画结束时,它会跳回到其原始位置。

显然,这在CSSland中是有意义的。动画已应用且不再作用于元素,因此原始样式生效。不过,这对我来说似乎有些奇怪-
当然,如果有人将某个元素动画化到位,那么人们会期望该位置继续存在吗?

有什么方法可以使结束位置“粘滞”,而不必借助Javascript在动画结束时在元素上标记类名或样式来修复其更改的属性?我知道过渡仍然存在),但是对于我所讨论的动画(该示例仅用于演示目的),过渡无法提供所需的控制级别。否则,似乎复杂的动画仅用于循环过程,在循环过程中,元素最终返回其原始状态。


问题答案:

如果您在类中定义结束状态,那么它应该按照示例中的说明进行操作:

.drop_box {
    -webkit-transform: translateY(100px);
    -webkit-animation-name: drop;
    -webkit-animation-duration: 2s;
    -webkit-animation-iteration-count: 1;
}

但是,无论如何,如果动画是事件驱动的,则最终可能不得不使用一些JavaScript。最简单的方法是使添加具有结束状态的类成为触发动画开始的原因。

css3-animations-20120403/)添加的属性的信息,请参见[dino的答案



 类似资料:
  • 问题内容: 我正在CSS 中设置的某些元素上运行动画。动画类应用于onClick,并使用关键帧将不透明度从更改为(除其他外)。 不幸的是,动画结束后,元素会返回到(在Firefox和Chrome中)。我自然会想到,动画元素会保持最终状态,而不是覆盖其原始属性。这不是真的吗 如果没有,我如何才能做到这一点? 代码(不包括前缀版本): 问题答案: 尝试添加。例如这样:

  • 我正在尝试用anime.js动画一个SVG图标。 下面是我的代码: null null 当动画工作加载-一切都是完美的。但当我点击“重启”按钮时,有两个问题: 1)图标的箭头部分必须在行和填充动画完成后才开始动画,但它与行/填充动画一起在动画开始时开始; 2)当填充动画完成时,箭头向顶部移动,我不知道该怎么修复它 所有的帮助将非常感谢!谢谢!

  • 动画状态机 在游戏中,一个角色或其他动画游戏对象通常具有多个对应不同行为的动画剪辑。例如,一个角色在空闲时可能会呼吸或轻微摇摆,当收到命令时开始行走,从平台跌落时惊慌地抬起手臂。一扇门可以具有打开、关闭、卡住和被砸开动画。动画系统使用一种类似于流程图的可视系统来表示 状态机,是使你可以控制和序列化想要应用在角色或游戏对象上的动画剪辑。本章提供了有关动画系统的状态机的更多内容,并介绍如何使用它们。

  • 我需要在一秒钟内将动画转换为X(150)和Y(100)位置,从而为我的视图设置动画。它与以下代码配合良好: 但是我需要在动画完成时视图保持在这个位置(150100),然后我调用setAnimationListener并执行以下操作: 问题是,在动画结束时,视图闪烁一次(非常快,几乎看不到),然后视图移动到另一个位置,非常接近所需的位置(150100),但并不精确。 如果我设置translate。s

  • 我想要ViewPager中我的按钮的动画。这意味着,如果我从第1页滑动到第2页,“下一步”按钮是收缩的,第二个按钮在它旁边移动。 到目前为止还不错。如果我现在快速滑动动画会卡住,它不再可见或只有一半可见。但是按钮仍然是可点击的。 有谁知道如何解决这个问题?或者有没有办法做这个动画?

  • 我有一个RelativeLayout,其中两个LinearLayout和一个TextView(三个都是孩子)共享同一个空间,这意味着在任何给定点上,只有一个视图可见,而其他两个视图消失。在应用程序启动时,TextView是可见视图。我有一个按钮,可以启动动画,使文本视图淡出,线性布局淡入。另一个线性布局还有一个按钮。 逻辑如下: 按下按钮- 只要上面的交互使用相同的按钮(对于相同的线性布局),这就