多个元素上的排队动画
我试图找出如何使用 jQuery 对多个元素上的动画进行排队。
例如,我需要在屏幕上移动元素。然后,完成后,移动下一个,依此类推。
这可能是一个项目列表.. 一个接一个地就位。
有人可以帮我吗?
我是否需要使用每个动画的 onComplete 函数来启动下一个动画?
更新:简单的例子。
<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li><li>Item 4</li></ul>
我想让它们一一淡出。 SO 项目 1 淡入。完成后,项目 2 淡入,依此类推。
我正在使用 jQuery 将一些 Flash“页面构建”类型动画转换为 HTML。所以我需要对多个元素上的动画进行排队。就像出现一个框,然后将一些文本滑到上面......等等。
I'm trying to find out how to queue animations on multiple elements using jQuery.
For example, I need to move on element across the screen. Then when that is done, move the next one, etc.
This of perhaps a list of items.. that fall into place.. one by one.
Can somebody help me out?
Do I need to resort to using the onComplete functions of each animation to start the next one?
Update: simple example.
<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li><li>Item 4</li></ul>
I want to make each of them fade in one by one. SO Item 1 fades in. Then when that is done, Item 2 fades in and so forth.
I'm converting some Flash "page build" type animations to HTML using jQuery. So I need to queue animations on multiple elements. Like make a box appear, and the slide some text onto it.. etc..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您知道其他元素的效果持续时间,您可以为每个元素添加延迟。
假设你想一个接一个地淡出一些div,并且每个淡出需要800ms,那么,你可以立即开始第一个,第二个延迟800ms(所以当另一个结束时开始),第三个一个延迟 1600 毫秒等等...
您可以使用 firebug 或 webkit 控制台执行的一个自动化示例(喜欢您的示例想法 jAndy!=D)是:(
在导航链接中执行它:问题,标签,用户...)
if you know the duration of the effects on the other elements you can add a delay for every element.
Say you want to fade out some divs one after the other, and each fade takes 800ms, then, you can start the first one right away, the second one with a delay of 800ms (so it starts when the other ends), the third one a delay of 1600ms and so on...
An automated example for this that you can execute with firebug or webkit console (liked your example idea jAndy! =D) is:
(execute it watching at the navigation links: Question, Tags, Users...)
Paul Irish 就此主题写了一篇很棒的文章:
http: //paulirish.com/2008/sequentially-chain-your-callbacks-in-jquery-two-ways/
对于您的淡入示例,您可以执行以下操作:
根据口味进行调整。
Paul Irish wrote a great article on this topic:
http://paulirish.com/2008/sequentially-chain-your-callbacks-in-jquery-two-ways/
For your fade-in example, you could do:
Adjust to taste.
实际上,所有 jQuery 的
fx 方法
(包括.animate()
)都提供了完整的回调
。也就是说,当您需要在动画完成后执行一些非特效内容时。如果您只是想让不同的
fx
效果按顺序执行,那么链接这些方法就足够了,就像jQuery 会在这个地方自动照顾您一样。 的调用。
这会被翻译成类似update
参考您的评论,将其输入到您的 firebug 或 webkit 控制台中:
这适用于 Stackoverflow 端的一些上部 div 元素。
Actually all of jQuerys
fx methods
(including.animate()
) offer acomplete callback
. That is when you need to execute some non-fx stuff after an animation has completed.If you just want to have different
fx
effects executing in order, it's enough to chain the methods likejQuery will automatically take care of you in this spot. This is translated into a call like
update
In reference to your comment, enter this into your firebug or webkit console:
This would work on some upper div elements from the Stackoverflow side.