【发布时间】:2016-01-09 11:53:56
【问题描述】:
是否可以从这里预渲染过渡:
filter:blur(10px) grayscale(100%) brightness(50%);
...到这个:
filter:blur(0) grayscale(0) brightness(100%);
我想要平滑过渡,但现在 FPS 低得令人讨厌。请参阅下面的示例,全页模式。 (在全高清屏幕上使用 NVIDIA GeForce GT 240M 进行测试,因此您更快的 GPU 可能不会像我的那么慢。)
div {
background-image: url('https://static.pexels.com/photos/1998/sea-landscape-mountains-nature.jpg');
background-size: cover;
-webkit-filter: blur(10px) grayscale(100%) brightness(50%);
filter: blur(10px) grayscale(100%) brightness(50%);
height: 1080px;
transition: all 1s;
width: 1920px;
will-change: filter;
}
div:hover {
-webkit-filter: blur(0) grayscale(0) brightness(100%);
filter: blur(0) grayscale(0) brightness(100%);
}
<div></div>
【问题讨论】:
-
我知道我可以使用预渲染图像,但我需要一个纯 CSS 的解决方案,或者至少是完全客户端的解决方案。
-
尝试添加此样式:
-webkit-transform: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); -
我试过了,可惜没用。
标签: css css-transitions css-filters