如何在 jQuery 中创建链式延迟动画序列
How create a chained delayed animation sequence in jQuery?
考虑具有以下对象:
<div id="d1"><span>This is div1</span></div>
<div id="d2"><span>This is div2</span></div>
<div id="d3"><span>This is div3</span></div>
<div id="d4"><span>This is div4</span></div>
<div id="clickhere"><span>Start animation</span></div>
考虑到我想使用 jQuery 在前面列出的四个元素中的每一个上应用动画。
我现在拥有的
如果页面,请考虑在 head 部分中应用的以下代码:
function start_anim() {
$("#d1").animate({top:"-50px"},1000,function(){}); // Animating div1
$("#d2").animate({top:"-50px"},1000,function(){}); // Animating div2
$("#d3").animate({top:"-50px"},1000,function(){}); // Animating div3
$("#d4").animate({top:"-50px"},1000,function(){}); // Animating div4
}
$(document).ready($('#clickhere').click(start_anim));
触发事件click
时,此脚本片段将导致四个div 的同步转换。
我想要什么
但是,我想先进行第一个div 移动,然后当第一个div 的动画达到 50% 时,我想进行第二个div 移动。第三个和最后一个div 也是如此。
我怎样才能到达这个?谢谢
像这样:
$("#d1").animate({top:-50}, 1000);
$("#d2").delay(500).animate({top:-50}, 1000);
$("#d3").delay(1000).animate({top:-50}, 1000);
$("#d4").delay(1500).animate({top:-50}, 1000);
甚至更好:
var duration = 1000;
$('#d1,#d2,#d3,#d4').each(function(i) {
$(this).delay( i*(duration/2) ).animate({top:-50}, duration);
});
相关文章:
- 更多延迟动画
- 关键帧之间的css3动画延迟
- 如何在一个元素动画之后延迟
- 如何通过justinaguilar.com设置动画延迟?[解决]
- jQuery动画的持续时间就像一个延迟
- 如何将角度动画延迟到模型绑定之后
- 在Raphael JS中,不透明度:0和开始动画到不透明度:1之间的延迟
- 如何停止基于jQuery延迟定时器的动画
- 谷歌地图api v3下降标记动画与延迟
- jQuery延迟/暂停动画
- CSS动画延迟的原因
- 香草JS:延迟点击事件以添加动画
- jQuery 延迟不算作动画
- JavaScript 中的延迟动画
- 如何延迟动画
- Javascript - 鼠标离开时延迟动画
- 如何在 jQuery 中创建链式延迟动画序列
- 创建不同的延迟动画在第一次和第二次点击+链接延迟
- 试图在启动时延迟动画
- 延迟动画,直到其他动画完成(滑动内容(