【发布时间】:2018-06-29 21:30:34
【问题描述】:
当我添加一个类时,我试图让一个元素立即变为一种颜色,然后在它被删除时慢慢淡出。我已经通过 CSS 过渡实现了这一点,如下所示:
.base {
background-color: #000000;
transition: 1.5s background-color;
}
.base.extra {
transition: 0s background-color;
background-color: #00ff00;
}
这有效,但仅当我添加“额外”类然后将其作为单独的操作删除时...
$('#add').on(
'click',
function(e) {
e.preventDefault();
$('.base').addClass('extra');
}
)
$('#remove').on(
'click',
function(e) {
e.preventDefault();
$('.base').removeClass('extra');
}
)
$('#flash').on(
'click',
function(e) {
e.preventDefault();
$('.base').addClass('extra');
$('.base').removeClass('extra');
}
)
.base {
width:300px;
height: 60px;
background-color: #000000;
transition: 1.5s background-color;
}
.base.extra {
transition: 0s background-color;
background-color: #00ff00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='base'></div>
<a id=add>Add 'extra' class</a><br/>
<a id=remove>Remove 'extra' class</a><br/>
<a id=flash>Add then remove 'extra' class</a><br/>
如果您单击“添加...”,则该块变为绿色,请检查。
如果您单击“删除...”,该块会变黑,请检查。
如果您单击“添加然后删除...”,则不会发生任何变化!
我假设它在第一个实例中没有改变颜色,所以它从黑色渐变为黑色。
如何使第三个链接将其更改为绿色,然后立即开始使用 CSS 过渡淡化?
注意:我故意不为此使用 jQuery 动画,因为一次运行几十个动画会带来性能问题。
【问题讨论】:
-
你需要一种眨眼效果?
-
-
首先你知道jquey上的事件不正确吗?你有两次 #remove ?
-
@TemaniAfif 谢谢!我没有发现。
标签: css css-transitions