使用CSS3过渡,可以对任何属性产生“平滑”和“平滑”效果。
我可以将其设置为仅具有“平滑”效果吗?我希望该解决方案仅在CSS中使用,如果可能的话,避免使用JavaScript。
逻辑流程:
- 用户点击次数元素
- 过渡需要0.5秒钟才能将背景颜色从白色更改为黑色
- 用户放开鼠标左键
- 过渡需要0.5秒钟才能将背景颜色从黑色更改为白色
我想要的是:
- 用户点击元素
- 转换需要0秒才能更改
- 用户放开鼠标键
- 过渡需要0.5秒才能更改...
没有“过渡”时间,但是有“过渡”时间。
Answers:
我在CSS3 Tryit编辑器中尝试了以下操作,并在Chrome(12.0.742.60 beta-m)中工作。
/* transition out, on mouseup, to white, 0.5s */
input
{
background:white;
-webkit-transition:background 0.5s;
-moz-transition:background 0.5s;
-ms-transition:background 0.5s;
-o-transition:background 0.5s;
transition:background 0.5s;
}
/* transition in, on click, to black, 0s */
input:active
{
background:black;
-webkit-transition:background 0s;
-moz-transition:background 0s;
-ms-transition:background 0s;
-o-transition:background 0s;
transition:background 0s;
}
<input type="button" value="click me to see the transition effect!">
opacity
一旦存在CSS类,b
就可以“淡出”一个元素,但是一旦CSS类消失(无过渡),它就会突然显示更改。所以我定义了.a { transition: ... 0s...; } .b { opacity: 0.5; } .b.a { transition: ... 2s ...; }
。现在,如果始终a
附有CSS类的元素也获得了class b
,b
则不透明度逐渐淡出为0.5,而当突然不存在时,则不会过渡。