我有一个css3过滤器,我希望从一个 Angular 过渡到另一个 Angular ,而不是一刀切

div {-webkit-filter: grayscale(1); }
div:hover { -webkit-filter: grayscale(0); }

我在下面尝试过,但是全盘改变。我有什么办法可以从一个 Angular 落过渡到另一个 Angular 落
-webkit-transition: -webkit-filter 1s;

最佳答案

我接受了扎克(Zach)的回答,并补充说:

.filtered:before {
    transition: 2s -webkit-mask-size;
    -webkit-mask-position: top left;
    -webkit-mask-size: 0px 0px;
    -webkit-mask-image: linear-gradient(131deg, rgba(0, 0, 0, 1) 20%, rgba(0, 0, 0, 0) 40%);
    -webkit-mask-repeat: no-repeat;
}
.filtered:hover:before {
    -webkit-mask-size: 600px 600px;
}

现在,从左上 Angular 开始有擦除效果。

demo

请注意,我们仍然没有对滤镜本身进行动画处理,而是对应用滤镜的图层的透明度(在这种情况下为蒙版)进行动画处理。

还要注意,您有很多基础可玩,可以创建不同的渐变来进行 mask 。

另外,效果几乎看不到,因此我为灰度添加了亮度因子(仅用于演示)

当然,所有这些都限于webkit

09-25 20:31