$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)
我有一个半透明的div,然后想把它切换到不透明。但是jQuery .delay();方法在这里似乎不起作用。我试过.fadeIn();相反,这有效延迟,但它不适用于改变类。
答案 0 :(得分:129)
.delay()
用于属于queue
的项目,例如动画。一个简单的addClass
没有排队。
您可以使用setTimeout
。
var trans = $('.transparent').removeClass('transparent');
setTimeout(function() {
trans.addClass('not_transparent');
}, 2000);
作为替代方案,您可以使用.queue()
将非排队的项目添加到队列中,但我认为setTimeout
会更好。
$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) {
$(this).addClass('not_transparent');
nxt();
});
答案 1 :(得分:5)
我知道这是一个老问题,但谷歌仍然有很多流量,所以我会加上我的两分钱;
您可以使用类似 -
的内容
$('.transparent').fadeIn().delay(500).queue(function(){
$('.transparent').addClass('yourclass');
});
您可以将一个函数传递给队列,以便在延迟后执行它们。我自己一直在使用这个非常相似的例子。
答案 2 :(得分:0)
.delay()
无法使用函数外的.addClass()
标记,因此只需使用:
delay();
function delay(){
$('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown');
}