jQuery задержка не работает
$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)
У меня есть div, который является полупрозрачным, а затем хочет переключить его на непрозрачный. Но jQuery .delay (); метод, кажется, не работает здесь. Я пытался .fadeIn (); вместо этого и это работает с задержкой, но это не работает с изменяющимися классами.
3 ответов:
.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(); });
Я знаю, что это старый вопрос, но здесь все еще много трафика из google, поэтому я добавлю свои два цента;
вы могли бы использовать что-то вроде -
$('.transparent').fadeIn().delay(500).queue(function(){ $('.transparent').addClass('yourclass'); });вы можете передать функцию в очередь, чтобы выполнить их после задержки. Я сам использовал это для очень похожих примеров.
.delay()не работает с.addClass()тег вне функции, так что просто используйте:delay(); function delay(){ $('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown'); }
Comments