它看起来像回调函数被执行之后动画被调用,而不是在结束时间这是动画设置为.看起来函数在其中执行或引用无关紧要.
有没有办法指定在持续时间结束时启动回调函数,或者我需要启动一个计时器,该计时器将设置为与动画持续时间相同的值?
另一件事,假设,我想同样的功能,以动画无论是在淡入或淡出取决于CSS属性值,即保持通过顺利,整个想法的唯一的事情是事实,我不能调用同一个动画的元素,而在动画在跑.有什么方法可以停止执行动画?
到目前为止,文档中没有任何内容,想知道是否有人有同样的问题以及你是如何解决它
先感谢您.
Rob*_*t K 10
抱歉,您的外观类似于错误:回调仅在事件完成后执行.
从回调参数的jQuery文档:
动画完成时要执行的函数,对每个动画元素执行一次.
在您的计算机上尝试以下代码.如果这不能使你确信文档是正确的,那么我不知道会发生什么.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery Animate, Callback Test</title>
</head>
<body>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('<div id="mytest">Incoming!</div>')
.appendTo(document.body)
.css('font-size', '14px')
.animate({ fontSize: '42px' }, 1500, 'linear', function() {
$(this).text('Boom!').css('color', 'red');
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
文字会变得更大,然后说"繁荣!" 并在动画完成时变为红色.
默认情况下,动画将继续运行,因为存在队列.队列只是jQuery循环的待处理动画列表,直到它为空.要放弃队列,您需要使用animate的一个重载版本:
$(this).animate({
opacity: 1.0,
width: '234px'
}, {
queue: false, // This skips the queue
duration: 'fast',
complete: function() { alert('the callback'); } // Your callback goes here...
});
Run Code Online (Sandbox Code Playgroud)
此外,必须在没有括号(此片段的周围卷曲标记)的情况下传递命名函数,否则将执行该函数.
var temp = myFunc(); // gets called and the result is assigned...
var temp = myFunc; // but this doesn't get called, and the function is passed.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6437 次 |
最近记录: |