【问题标题】:Is there a way to transition from the end state of a CSS animation using transitions?有没有办法使用转换从 CSS 动画的结束状态转换?
【发布时间】:2014-10-23 04:31:01
【问题描述】:

我理解并使用过渡和动画,但在我看来,在尝试将它们结合起来时会出现一些“障碍”。例如,如果您有一个以颜色结尾的动画样式,并使用-webkit-animation-fill-mode: forwards; 无限期地设置值,那么如果可以设置覆盖样式,我可以从该状态平滑过渡到另一个状态,这将很有意义。

jsfiddle。注意切换黄色样式使用的是平滑过渡,但是使用动画只能在动画过程中平滑初始的 0-50%。如果动画值未设置时不会发生突然的即时变化,则无法将最终的绿色状态恢复为纯白色或黄色背景。另请注意,动画在激活时会完全覆盖!important 样式。

我不知道在 spec/WD/etc. 中指定了多少这种行为,但就我而言,这种类型的限制行为使 CSS 动画几乎一文不值,建议使用动画从 javascript 逐步执行,与转换一起使用。这样做的缺点是这样做会大大增加开销。

为了解决“不清楚我在问什么”投票,我要问的是如何制作一个可以从最终动画状态插回的动画?

【问题讨论】:

    标签: javascript css css-transitions css-animations


    【解决方案1】:

    是的,但是您是否尝试过在动画的 animation-direction 属性中使用值 reverse

    【讨论】:

    • 您的意思是创建另一个动画,例如0% { background-color: green } 100% {}?我没有考虑过,它看起来不优雅,但我会用这个......
    • reverse 的使用受到限制;相同的序列将反向播放。这通常是不希望的......但是我得到了一些我更喜欢的东西。见new jsfiddle here。这里唯一的缺陷是“关闭”动画在页面加载时播放。在切换期间添加另一个要使用的类可以帮助解决这个问题...
    • 您的解决方案很有趣,我个人发现“动画持续时间:反向”显示和隐藏消息保持相同效果很有用,此外我在 Firefox 中的某些动画中有不同的行为添加类动态通过javascript
    • 当然可以,但是如果您只需要一个过渡阶段,那么使用动画有什么意义呢?然后只需使用过渡!
    • 当然我会为简单的动画使用过渡,我的意思是关键帧对于创建更复杂的动画很有用,并且可以逐步操作过渡
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多