Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery how to add a class to an element one by one with a small delay?

jQuery how to add a class to an element one by one with a small delay when click on the #button ? not to add the class at once for all element.I want to do it one by one. Please help. Thanks in advance.

<ul id="scroll-set">
<li class="  imVisible">Brentwood</li>
<li class="imVisible ">Antioch</li>
<li class=" imVisible">Pittsburg</li>
<li class=" imVisible">Concord</li>
<li class="imVisible ">Walnut Creek</li>
<li class=" imVisible">Danville</li>
<li class=" imVisible">San Ramon</li>

</ul>
<div id="button">
like image 429
Kasun Malith Avatar asked Nov 28 '25 06:11

Kasun Malith


1 Answers

The working demo.

$('#button').click(function() {
  $('#scroll-set li').each(function(i) {
    var $li = $(this);
    setTimeout(function() {
      $li.addClass('imVisible');
    }, i*100); // delay 100 ms
  });
});


The reverse version.
$('#button').click(function() {
  $($('#scroll-set li').get().reverse()).each(function(i) {
    var $li = $(this);
    setTimeout(function() {
      $li.addClass('imVisible');
    }, i*100); // delay 100 ms
  });
});

like image 146
xdazz Avatar answered Nov 30 '25 20:11

xdazz