【问题标题】:CSS filter() Transformation/transition timeCSS filter() 变换/过渡时间
【发布时间】:2014-10-04 15:28:00
【问题描述】:

我有一个用于模糊元素的 CSS 过滤器,它的效果非常好……但我希望它能够缓和模糊,但不知道是什么 css transition-property 控制它?

我使用的是transition: 1s;,但这会破坏元素上的另一个动画(它滑到左侧)。

.event {
     // transition: 1s; // Works with blur() but breaks other animations
}

.event:hover {
     -moz-filter: blur(5px);
     -ms-filter: blur(5px);
     -o-filter: blur(5px);
     -webkit-filter: blur(5px);
     filter: blur(5px);
}

【问题讨论】:

    标签: css css-transitions css-filters


    【解决方案1】:

    声明中的属性名始终是冒号之前的部分,即使是一个函数。所以,对应的transition-property就是filter

    .event {
        transition-property: -moz-filter, -ms-filter, -o-filter, -webkit-filter, filter;
        transition-duration: 1s;
    }
    

    这不仅适用于filter 属性,还适用于transform 等通常接受函数作为值的属性。

    这也意味着,例如,如果您有多个不同的过滤器或多个变换,则给定属性的所有这些都会被动画化。

    【讨论】:

    • @Wallter:我接受了您的编辑,但我不确定浏览器是否会正确应用其相关前缀并安全地忽略其他前缀。例如,我见过Chrome completely break down on other unrecognized transition properties。可能值得单独指定每个转换属性。
    • 我将把它推广到 Dev QA 和回归测试,如果有任何问题我会报告。虽然,我确实主要使用 Chrome(稳定版、Beta 版和 Canary)进行开发并且没有遇到问题 - 参数的顺序相同......但我们会看到
    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2021-02-14
    • 2015-11-16
    • 2021-03-04
    相关资源
    最近更新 更多