我想实现的是从js更改一些属性(background-color
在上面的代码中)两次,以便过渡将在它们之间运行,但不是从以前的状态到第一个。上面的代码几乎从来没有工作,因为超时设置为零,它几乎总是工作时,它至少设置为10,它始终在我的机器上时,我将它设置为100.我还想要完全避免超时和以太线性运行代码或基于适当的事件回调(到目前为止我没有发现任何有用的)。CSS过渡与纯JS没有延迟
下面是一个例子(also on jsFiddle):我管理的绿色环保和使用transitionend
处理(其中,不幸的是,还要求供应商在使用很短的过渡做
var outter = document.getElementById('outter');
var test = document.getElementById('test');
test.onclick = function() {
outter.removeChild(test);
test.style.backgroundColor = 'green'
outter.appendChild(test);
setTimeout(function() {
test.style.backgroundColor = 'red'
}, 0);
}
#test {
position: fixed;
left: 2em;
right: 2em;
top: 2em;
bottom: 2em;
background-color:red;
transition-duration: 2s
}
<div id=outter>
<div id=test></div>
</div>
于是就点击你想要的背景立刻变成绿色,然后花两秒钟绿色转变为红色? –
@ T.J.Crowder正是!这里最重要的是'立即'这个词 – Grief
我不明白,想要立刻从A过渡到B,然后从A过渡到B,但延迟。您已经在B. – Crowes