jquery / learn.jquery.com

jQuery Learning Center web site content
https://learn.jquery.com
Other
924 stars 487 forks source link

Slight confusion with description of effect function behaviour #654

Open derwaldgeist opened 9 years ago

derwaldgeist commented 9 years ago

Hi there,

I'm a newbie who is reading through your (excellent) description, thanks for your good work!

At one point I stumbled, and I would like to share my confusion with you.

On section http://learn.jquery.com/effects/intro-to-effects/#doing-something-after-an-animation-completes, there is the statement:

"A common mistake when implementing jQuery effects is assuming that the execution of the next method in your chain will wait until the animation runs to completion. [...] It is important to realize that .fadeIn() above only kicks off the animation. Once started, the animation is implemented by rapidly changing CSS properties in a JavaScript setInterval() loop."

Later on the same page, in section http://learn.jquery.com/effects/intro-to-effects/#delay-, there is an example that seems to contradict what we've learned above:

// Hide all level 1 headings over half a second; then wait for 1.5 seconds
// and reveal all level 1 headings over 0.3 seconds
$( "h1" ).hide( 500 ).delay( 1500 ).show( 300 );

I first thought, the description might be a mistake, but according to the API documentation, this is exactly how delay() behaves. My only explanation to this is that jQuery internally checks if chained function calls refer to animations as well - and if so, chains these animations as well, probably using an animation queue. It would be much clearer if this would be explicitly stated on that page to avoid reader's confusion.

arthurvr commented 9 years ago

They're indeed added to the queue. When reading the article on queues (which is one of the next ones) I think that becomes clear.

So what we're saying there is in fact correct though I'm +1 on adding a brief note to clarify it for people that don't even know what a queue is (very likely when people are reading that page).

Thanks for reporting this issue! Any hints for us on how to clarify things are welcome, always :)