CSS3单向转换?

Abh*_*hek 65 html5 css3

使用CSS3过渡,可以对任何属性进行"平滑上升"和"平滑下降"效果.

我可以将其设置为仅具有"平滑"效果吗?我希望解决方案只在CSS中,如果可能的话,避免使用JavaScript.

逻辑流程:

  • 用户点击元素
  • 转换需要0.5秒才能将背景颜色从白色变为黑色
  • 用户放开鼠标左键
  • 过渡需要0.5秒才能将背景颜色从黑色变为白色

我想要的是:

  • 用户点击元素
  • 转换需要0才能改变
  • 用户放开鼠标按钮
  • 过渡需要0.5秒才能改变......

没有'过渡时间',但是有一个'过渡'时间.

Mat*_*y K 111

我在CSS3 Tryit Editor中尝试了以下内容,它在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;
}
Run Code Online (Sandbox Code Playgroud)
<input type="button" value="click me to see the transition effect!">
Run Code Online (Sandbox Code Playgroud)

  • 在我的情况下,我希望在悬停时延迟/发生转换,而不是悬停.一旦我阅读了上述内容,解决方案就更简单了:只需在:hover规则上进行转换,无需在其他任何地方取消任何操作.感谢指向正确的方向,并有一个明确的例子. (11认同)
  • 卫生署!我不敢相信这不会发生在我身上......当然!基本过渡设置为0,活动状态转换覆盖基值,设置为0.5s ......叹息......我需要一杯咖啡...... (3认同)

Nic*_*tti 8

使用“transition:none”也有效:

div{
  background: tomato;
  transition: background 0.3s ease-in;
}
div:active{
  background: blue;
  transition: none;
}
Run Code Online (Sandbox Code Playgroud)
<div>click me</div>
Run Code Online (Sandbox Code Playgroud)