"from"和 "to"状态下的 CSS 转换值

标签 css css-transitions specifications browser-support

当从“状态 A”移动到“状态 B”时,我一直在尝试使用 transition-delay,但在返回状态 A 时没有延迟。这是一个普遍问题关于 CSS 规范是否规定过渡的设置应该是过渡开始时的设置或正在过渡到的状态的设置。这是一个例子:

.menu {
    transform: translateX(0%);
    transition: transform 1s ease-out;
}

.menu.is-open{
    transform: translateX(100%);
    transition: transform 5s ease-out;
}

开场动画应该1秒还是5秒?

我的代码稍微复杂一些,因为它使用了延迟,但基本上可以归结为这一点。

.menu {
    transform: translateX(0%);
    transition: transform 0.5s ease-out 0;
}

.menu.is-open {
    transform: translateX(100%);
    transition: transform 0.5s ease-out 0.5s;
}

当我在 Chrome 或 Firefox 中尝试此操作时,打开菜单时出现延迟,关闭菜单时没有延迟,但在 IE11/Edge 中,它的行为与没有设置延迟时一样。所以我不确定这是否是一个浏览器错误,或者我是否误解了过渡的工作原理,因此我更普遍的问题是使用哪些过渡。

最佳答案

应该是transition:transform而不是transition:translate 转换规则接受 CSS 属性而不是值


尝试颠倒顺序,以便 .menu 获得半秒延迟

.menu{
    transform: translateX(0%);
    transition: transform 0.5s 0.5s ease-out;
}

.menu.is-open{
    transform: translateX(100%);
    transition: transform 0.5s 0s ease-out;
}

关于不能在IE下工作,参见vendor prefixes对于过渡变换

关于 "from"和 "to"状态下的 CSS 转换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35106081/

相关文章:

html - Div 不会随内容正确展开?

javascript - Bootstrap 减小字体大小

html - 文档正文中的 meta、link 和 style 元素有什么用途?

json - 为什么斜杠是 JSON 中的可转义字符?

javascript - Chrome 中的翻转动画显示非事件侧的一半元素

javascript - localStorage getters/setters for key "getItem": bug, 规范不一致或其他什么?

html - 我怎样才能在html上对齐这种段落

html - 无法使用 css first-child/nth-child 定位元素?

css - 固定后,Safari 背景颜色过渡为透明。漏洞?

jquery - 使用 Animate.css 的轮播滑动过渡