执行代码,但延迟'return'JS中的函数
Execute the code but delay the 'return' of a function in JS
我是否能够延迟Javascript函数的返回,如果可以,如何延迟?
例如,假设我使用JS来设置使用CSS3转换的元素的背景,并且该转换需要1秒,那么我希望在转换完成后(1秒后)return
函数。
类似这样的东西(伪代码):
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/
不,您不能这样做。在浏览器中,JavaScript和UI共享同一个线程,因此在JavaScript代码执行完毕之前,动画不会开始。
如果要在动画完成后执行某些操作,请使用transitionend
事件。
给函数提供一个回调,并在所需的时间后执行该回调。
function doSomething(callback){
// execute your transition
setTimeout(callback,1000);
}
现场示例:http://jsfiddle.net/eAMXK/-您会看到它将当前时间输出到控制台,然后在一秒钟后执行同样的操作。
您不希望延迟返回。您希望在一秒钟后执行回调。
function (element) {
element.style = 'background: #aaa; transition: all 1s ease-in;'
setTimeout(function () {
// whatever you wanted to do with the element;
}, 1000);
}
理想情况下,正如@AndyE所指出的,不要在"一秒钟后"进行,而是在transitionend
事件发生时进行。这更灵活,而且通常是正确的做法。不过,对该事件的跨浏览器支持还不稳定。根据您想要实现的目标,"一秒钟后"可能更容易实现。
相关文章:
- 当js函数's已执行
- 调用php数组中的JS函数
- 为JS函数添加延迟
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 使用JS函数来使用另一个函数的语法?node.js
- 将JS函数传递给Emscripten生成的代码
- 是否可以在使用headerphp函数后自动调用JS函数
- 如何在.js函数中检索来自其他模板的表单的目标值
- 简单的JS函数.需要对变量进行澄清
- 无法识别从php创建的Js函数
- 如何将对象传递给这个js函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 将重定向URL链接添加到JS函数
- 从PHP调用JS函数不起作用
- js函数堆栈传入变量,.hide()不起作用
- 当运行JS函数时,如何在c#中的Edgejs中获取错误文本
- 如何让JS函数自行执行
- 使用默认js函数的javascript中的日期的第二天
- 如何从页面中的jquery调用angular js函数控制器
- 从.js文件调用html中的js函数