动画对象在分离和追加后不继续动画
Animated objects not continuing to animate after detaching and appending
我有几个图像正在被动画化(淡出和淡入),我想隐藏和显示。 使用hide()
和show()
不起作用,因为它们只是淡入。 我以为我可以detach()
它们,然后appendTo()
它们,这有效,但是重新附加它们后动画不会继续。 一些代码如下:
动画
function loading() {
$('#load0').delay(300).fadeIn(200);
$('#load1').delay(500).fadeIn(200);
$('#load2').delay(700).fadeIn(200);
$('#load0').delay(500).fadeOut(75);
$('#load1').delay(700).fadeOut(75);
$('#load2').delay(900).fadeOut(75, loading);
}
loading();
分离和追加
var load;
$('#slideshow').on('cycle-before', function() {
load = $('.load').detach();
});
$('#slideshow').on('cycle-after', function() {
load.appendTo("#main");
});
如何隐藏和重新显示这些元素?
我相信
你的第一个问题是最后一行"$('#load2').delay(900).fadeOut(75,加载);" 如果 DOM 中不存在"load2"(因为您分离了它),则无法再次调用加载方法。 当你 appendTo 时,你必须再次调用 load(),或者你可以检查项目是否在 DOM 中,如果没有,你可以调用 load() 函数。 在某些浏览器中,您还可能会遇到递归从自身内部一次又一次调用函数的问题。 每个浏览器处理调用次数的方式不同,有些浏览器只使用执行时间而不是递归级别。
function loading() {
$('#load0').delay(300).fadeIn(200);
$('#load1').delay(500).fadeIn(200);
$('#load2').delay(700).fadeIn(200);
$('#load0').delay(500).fadeOut(75);
$('#load1').delay(700).fadeOut(75);
$('#load2').delay(900).fadeOut(75, loading);
}
相关文章:
- 如何设置html元素填充的动画
- 如何使用动画实现纸张推车
- 如何在生成下载文件时显示加载动画
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- Javascript:在css动画之后继续执行
- 即使在另一个选项卡中,也要继续使用Javascript动画
- 动画对象在分离和追加后不继续动画
- 继续加载.gif在操作 DOM 时进行动画处理
- 动画滑块在鼠标离开时不继续
- kineticjs::从X到Y的距离继续设置形状的动画
- 如何暂停css动画,然后从暂停点继续运行
- Raphael JS -鼠标悬停时开始/继续动画.鼠标离开时暂停动画
- 在mouseenter时停止timeOut和动画,在mouselleave时继续
- 我想要一个动画触发活动,并继续一旦活动状态消失
- 是想控制我的动画的FPS一个很好的理由继续使用setTimeout而不是requestAnimationFrame
- 如何使用jQuery继续通过一组动画自定义函数完成后
- 如何在一个动画继续另一个动画之前停止它?
- 继续在javascript中播放动画
- 动画在被滚动触发后继续
- jquery:动画必须继续(动画和同步ajax请求)