【问题标题】:Starting CSS animation when element is beeing displayed显示元素时启动 CSS 动画
【发布时间】:2014-03-11 07:30:31
【问题描述】:

我正在尝试使用 CSS 动画和关键帧为一些​​元素设置动画:

-webkit-animation: stamp 600ms ease-in-out 1;
   -moz-animation: stamp 600ms ease-in-out 1;
        animation: stamp 600ms ease-in-out 1;  

如果我通过 display:block/none 切换可见性;动画从一开始就在 Chrome 和现代 IE 中播放得很好,但在 Firefox 中却没有(未在 Safari 中测试)。

有没有办法在 Firefox 中也能做到这一点?

Here is a fiddle 我为测试而创建的。

【问题讨论】:

  • -moz-opacity?真的吗? Firefox 在上一个版本中不支持必要的动画……与-moz-border-radius 相同。取消前缀!我也不确定-webkit-opacity 是否曾经存在过,但如果确实存在,那么你现在真的不需要它了。
  • @minitech:感谢您的提示!我刚刚检查了 caniuse.com 并且绝对没有不透明度和边框半径的供应商前缀。哇,我已经用了很长时间了,显然从来没有检查过。

标签: css cross-browser css-animations


【解决方案1】:

.badge 之后移动.hidden 并移除动画:

.hidden {
    animation: none;
    display: none;
}

Updated fiddle

【讨论】:

  • 谢谢,如果我使用额外的类(.hidden),这似乎可以解决问题。我想知道这是否也可以通过仅使用 jQuery 函数 show() 和 hide() 显示和隐藏元素而无需额外的类。这实际上是我在项目中得到的,我很高兴 Chrome 和 IE 每次都播放动画。我updated the fiddle 使用函数 .toggle() 更符合我的问题。但是我将此答案标记为已接受,因为它是我(错误)小提琴的答案。但如果对我的实际问题有提示,我会很高兴:)
  • @RalfHeumann:不幸的是,我不这么认为。 .toogle().toggleClass('hidden') 不是糟糕,不是吗?
猜你喜欢
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 2020-04-30
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多