jQuery задержка не работает



$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)


У меня есть div, который является полупрозрачным, а затем хочет переключить его на непрозрачный. Но jQuery .delay (); метод, кажется, не работает здесь. Я пытался .fadeIn (); вместо этого и это работает с задержкой, но это не работает с изменяющимися классами.

334   3  

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

    Ничего не найдено.