views:

293

answers:

3

Hello

I've stumpled on something queite nice, I've wanted to use in some upcoming project.

It's an animated opacity on load, or you can call it fade in.

I wondered if you could link some elements together (ex. 3) so element2 only starts when element 1 i finished, and element3 when no. 2 is?

Or should you define som kind of delay on 2 and multiply the delay on 3?

Thank you very much...

+1  A: 

If you had divs, say class="faded", you could fade each in on load, each in a row like this:

$(".faded").each(function(i) {
  $(this).delay(i * 400).fadeIn();
});

You can view a demo of this effect here, or a slower version here. The 400 is for 400ms, the duration of the normal .fadeIn() speed :)

You can either use .hide() to hide them on page load, like this:

$(".faded").hide()

Or do it in the CSS:

.faded { display: none; }
Nick Craver
Thank you very much... That was exactly what I was looking for! :-)
Kenneth B
+3  A: 

You could have the fadeIn on element2 begin at the completion callback time of element1:

 element1.fadeIn(500, function() {  
       element2.fadeIn(500, function() { 
            etc...
Joey C.
While this works for a few, it's really not pretty once you have over 3 or so :)
Nick Craver
A: 

Since I don't believe that these types of animation have anything in the way of a success callback, if you know how long an element will take to fade, you can use something like setTimeout() to fire off the next after the proper amount of time has passed.

Edit: I stand corrected.

andyortlieb