$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)
我有一个半透明的div,然后想把它切换到非透明。但是jQuery .delay();方法在这里似乎不起作用。我尝试了.fadeIn();,它可以延迟工作,但是它不能工作在不断变化的类中。
发布于 2010-12-28 14:35:48
.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();
});
发布于 2015-09-08 19:50:24
我知道这是一个老生常谈的问题,但是仍然有很多来自google的流量,所以我会补充我的两点意见;
你可以用像这样的东西-
$('.transparent').fadeIn().delay(500).queue(function(){
$('.transparent').addClass('yourclass');
});
您可以将函数传递给队列,以便在延迟后执行它们。我自己也在用它来做非常类似的例子。
发布于 2014-08-10 08:25:13
.delay()
不能在函数外部使用.addClass()
标记,因此只需使用:
delay();
function delay(){
$('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown');
}
https://stackoverflow.com/questions/4544126
复制相似问题