我将两张图像叠放在一起(一张是黑白的,另一张是彩色的)并创建了一个 CSS 过渡,其中一张图像的不透明度降低,而另一张增加。结果是悬停效果上的颜色。
但是我遇到了一个问题:在过渡期间的某个时刻,您可以稍微透过图像看到一点,这表明即使“过渡定时功能”属性设置为线性,不透明度的过渡也不是线性的。
如果涉及某种二次缓动,我会理解为什么会发生这种情况,但不应该吗?
(我用纯 CSS 来解决这个问题的原因是我还没有完全处理 JQuery)
关于如何更好地实现此功能的任何想法?
我的 CSS 在下面,或者访问这个 JSFiddle。
#container { width: 210px; height: 150px; display:block; border: 4px solid #ccc; position:relative; overflow:hidden; margin: 10px 0 0 10px;}
.image { width: 210px; height: 150px; display:block; position:absolute; left: 0px; top:0px; }
#dbw {
transition: all 0.3s linear;
-webkit-transition: all 0.3s linear;
moz-transition: all 0.3s linear;
-o-transition: all 0.3s linear;
background: url("http://oi42.tinypic.com/x0y2ky.jpg");
zoom: 1;
filter: alpha(opacity=100);
opacity: 1;
}
#dco {
transition: all 0.3s linear;
-webkit-transition: all 0.3s linear;
moz-transition: all 0.3s linear;
-o-transition: all 0.3s linear;
background: url("http://oi40.tinypic.com/28gwcrb.jpg");
zoom: 1;
filter: alpha(opacity=0);
opacity: 0;
}
#container:hover #dbw {
filter: alpha(opacity=0);
opacity: 0;
transform: scale(1.1);
-ms-transform: scale(1.1);
-webkit-transform: scale(1.1);
}
#container:hover #dco {
filter: alpha(opacity=100);
opacity: 1;
transform: scale(1.1);
-ms-transform: scale(1.1);
-webkit-transform: scale(1.1);
}