使用jQuery.queue而不是setTimeout
Use jQuery.queue instead of setTimeout
我想向DOM添加一个元素,然后添加一个带有转换的类来应用滑动效果。目前我使用的是延迟为0
的setInterval()
,否则不会发生转换(演示):
var $block = $('<div/>', {class: 'block'});
$('body').append($block);
setTimeout(function () {
$block.addClass('shifted');
}, 0);
我想使用jQuery.queue
,但用我目前的方法,它不起作用:添加元素和添加类同时发生,所以没有显示转换。
$('body')
.append($block)
.queue(function () {
$block.addClass('shifted');
});
如果需要超时才能制作动画,则应添加delay
:
$('body')
.append($block)
.delay(0)
.queue(function (next) {
$block.addClass('shifted');
next(); //don't forget to dequeue so that the rest of the queue can run
});
.delay()
实际上只是的一种方便方法
.queue(function (n) {
setTimeout(n, duration);
});
如果不调用delay
(或排队超时),fx队列将立即执行,这与排队$block.addClass('shifted')
的目的背道而驰。
相关文章:
- jQuery setTimeOut: in for-loop
- 将jQuery对象传递到setTimeout递归函数中
- 添加一个setTimeout方法会使jQuery悬停方法忽略setTimeout方法中的函数
- setTimeOut AFTER jQuery表单提交
- Javascript/Jquery setTimeout 函数不适用于长 html
- SetTimeout延迟未按jquery幻灯片中的预期工作
- jQuery setTimeout ajax递归函数在即时消息程序中短时间后抛出错误
- 当超出范围时,延迟执行脚本Jquery(或SetTimeOut)BUT
- 使用jQuery.queue而不是setTimeout
- Javascript setTimeout function with JQuery
- jQuery显示setTimeout计时器
- jQuery Name Spacing and setTimeout
- 对jQuery使用setTimeout()是否有任何问题;媒体查询“;类型情况
- setTimeout in jQuery with a loop
- Rails和jQuery-尝试使用setTimeout主动更新数据
- 在setTimeout中执行jQuery成员函数而不关闭的方法
- 如何清除jQuery鼠标悬停#id上的setTimeout
- Firefox setTimeout + jQuery 淡入淡出循环不一致,提前停止,不会循环
- settimeout jquery
- 如何在类中执行多重setTimeout jQuery