Менять класс DIV каждую X секунду, а не только 1, но с несколькими классами

0

Я уже видел этот код и знаю, как он работает

Ссылка: используйте jquery для переключения класса на 1 секунду каждые 5 секунд.

Но как бы вы это сделали с несколькими классами?.

Например,

  • первые 5 секунд добавят "CLASS1"

  • следующие 5 секунд добавят "CLASS2"

  • и следующие 5 секунд добавят "CLASS3"

  • а затем повторите это после того, как все будет сделано.

Я знаю только немного jQuery и все еще учась. Любая помощь будет оценена по достоинству.

Теги:

3 ответа

2
Лучший ответ

Чтобы изменить класс каждые x секунд, вы должны использовать setInterval:

var counter = 1;
var int = setInterval(function(){
    $("div").attr("class", "class" + counter);
    if (counter === 3){
        counter = 1; // If counter = 3, set it back to 1 for next loop
    } else {
        counter++; // Else, add 1 to the counter
    }
}, 5000);

пример

Если вы хотите, чтобы функция не запускалась после x итераций, вы можете настроить второй счетчик, а затем использовать clearInterval(int) чтобы программно завершить его.

  • 0
    Привет, это сработало! Спасибо!
  • 0
    @ Широ Я рад, что это сработало, но ты понимаешь, как это работает? Гораздо лучше понять код, чем просто слепо его использовать (по крайней мере, это то, что я узнал).
Показать ещё 1 комментарий
0
setInterval(function(){ 
   // toggle the class every five second
   $('#donate').toggleClass('wiggle');  
   setTimeout(function(){
     // toggle back after 1 second
     $('#donate').toggleClass('wiggle');  
   },1000);
},5000);

демонстрация

0

Еще одно усилие:

Демо: JSFIddle

JS

$(function(){
    var timer, i=1;
    timer = setInterval(function(){
        if (i > 3) i = 1;
        $('#addme').addClass("class"+i);
        $('#addme').append("<br>added class"+i);
        i++;
    }, 5000);
});

HTML:

<div id="addme">Add multiple classes here...</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню