我在css中有以下代码:
.item {
opacity: 0;
transition: opacity 1s linear;
-webkit-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
}
.item.seen {
opacity: 1;
}
当我将课程seen
添加到.item
时,该项目的opacity
会在转换时从0变为1。
但是当我从seen
中移除课程.item
时,opacity
转换(从1到0)也会运行。
有没有办法在添加.seen
时进行转换,而不是在删除时转换?
答案 0 :(得分:5)
.item {
opacity: 0;
}
.item.seen {
opacity: 1;
-webkit-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
transition: opacity 1s linear;
}
小提琴:http://jsfiddle.net/qcxt3evn/(opacity
设置为0.2
只是为了查看可点击的元素)
另外,不要忘记在供应商前缀后放置标准属性(后者可能不符合规范)
答案 1 :(得分:1)
在这种情况下,包含transition
的{{1}}永远不会更改。
如果您在transition
中设置class
进行切换,则转换在删除上无效。
.item {
opacity: 0;
}
.item.seen {
opacity: 1;
-webkit-transition: opacity 1s linear;
-moz-transition: opacity 1s linear;
transition: opacity 1s linear;
}
<强> DEMO 强>
要超越,在 Chris Coyier 的文章Ordering CSS3 Properties中也有详细解释,您应该注意顺序你的前缀,附有文章的非常好的例子:
http://codepen.io/css-tricks/pen/pqgKH
#wrongway { background: #ccc; padding: 30px;
border-radius: 30px 10px;
-webkit-border-radius: 30px 10px;
}
#rightway { background: #ccc; padding: 30px;
-webkit-border-radius: 30px 10px;
border-radius: 30px 10px;
}