我是否能够,如果是这样,延迟返回Javascript函数?
例如,假设我使用JS来设置使用CSS3转换的元素的背景,并且该转换需要1秒,我想在转换完成后return
函数(1秒后) )。
像这样(伪代码):
function
element.style = 'background: #aaa; transition: all 1s ease-in;' // this will take 1 second to transition, although the JS is executed immediately
after 1 second // delay the return until the CSS3 transition completes.
return element
我希望这一切都有意义!提前谢谢,非常感谢您的帮助!
每个人也可以看到实际的代码:http://jsfiddle.net/BtNSs/1/
答案 0 :(得分:4)
不,你无法做到这一点。在浏览器中,JavaScript和UI共享相同的线程,因此在JavaScript代码完成执行之前动画不会开始。
如果您想在动画完成后执行某些操作,请使用transitionend
事件。
答案 1 :(得分:0)
您不想延迟退货。您希望在一秒钟后执行回调。
function (element) {
element.style = 'background: #aaa; transition: all 1s ease-in;'
setTimeout(function () {
// whatever you wanted to do with the element;
}, 1000);
}
理想情况下,正如@AndyE指出的那样,你不会“在一秒钟之后”执行此操作,而是在transitionend
事件发生时执行。这更灵活,通常是正确的做法。但是,该事件的跨浏览器支持还不是那么简单。根据您想要实现的目标,“一秒钟后”可能很多更容易实现。
答案 2 :(得分:0)
如何为函数提供回调,并在所需的时间后执行该回调。
function doSomething(callback){
// execute your transition
setTimeout(callback,1000);
}
实例:http://jsfiddle.net/eAMXK/ - 您将看到它将当前时间输出到控制台,然后一秒钟后也会这样做。