I'm using animate.css with waypoints.js in my landing page. I want to animate elements when user scrolls the page. But, the problem is that I need to hide elements before the animation starts(if i don't hide, animate.css hides element first and then animates in, that looks pretty ugly).
However, I solved problem by adding two classes in my css but it creates another problem.
.visible{ opacity: 1; }
.invisible {opacity: 0; }
// I added following jquery code 
$('elem').removeClass('invisible').addClass('visible fadeInUp');
This works good until I add animation-delay to an elements. Here is an explanation what I want to achieve. I've elements like this:
<ul>
 <li>element1</li>
 <li>element2</li>
 <li>element3</li>
</ul>
I want to add animation delay to each of the elements, so that they fadeInUp  after each other with a specified seconds in each of the elements using animation-delay property. I can't get this to work. I tried following code without using animation-delay but no success. 
$('elem').each(function() {
  // code with delay using timeout
  setTimeout(function(){
   $(this).removeClass('invisible').addClass('...');
  }, 100);
});
Let me know if my approach is completely wrong? If yes, then can you provide better way to accomplish.
 
     
     
     
     
     
    