2009-11-27 11 views
2

그것은 콜백 같은 기능하지 기간의 끝에서, 애니메이션 호출 직후 실행될 보이는 애니메이션하는 그런이 (가) 애니메이션으로 설정됩니다. 그리고 함수가 어디에서 실행되거나 참조되는지는 중요하지 않은 것처럼 보입니다.jQuery를 (PARAMS [시간], [완화], [콜백])

거기에 기간이 끝날 때 콜백 함수를 실행하도록 지정하는 방법이 있습니까, 아니면 애니메이션 기간과 동일한 값으로 설정된 타이머를 시작해야합니까?

또 다른 것, 가상의, 나는 페이드 인 또는 페이드 아웃에 CSS 속성 값에 따라 동일한 기능을 원합니다. 전체 아이디어를 원활하게 통과하는 유일한 것은 사실을 호출 할 수 없다는 사실입니다. animate 요소에이있는 동안 애니메이션이 실행 중입니다. 애니메이션의 실행을 중지하는 방법은 무엇입니까?

누구도 동일한 문제가 있었고 해결 방법을 궁금해 한 적이 있습니다.

미리 감사드립니다.

+2

왜 downvote입니까? 이것은 그가 틀렸다고해도 그가 downvote를받을 자격이 있다는 것을 의미하지는 않는 질문입니다. 그것이 그가 요구하는 이유입니다. +1이 다른 것으로 확신 할 때까지 균형을 잡습니다. –

+2

'animate()'에 넘겨 준다고 생각할 때 우연히 함수를 실행하는 것 같아요. – James

답변

10

죄송합니다. 문과 같이 보이며, 이벤트가 완료된 후에 만 ​​콜백이 실행됩니다. 콜백 매개 JQuery와 문서에서

: 애니메이션이 완료 될 때마다

함수

실행될은 애니메이션에 대해 각 요소에 대해 한번 실행된다.

Source

컴퓨터에서 다음 코드를 사용해보십시오. 이것이 문서가 옳다는 것을 당신이 확신하지 못한다면 나는 무엇이 될지 모른다.

<!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> 

텍스트가 커지고 "붐!" 애니메이션이 완료되면 빨간색으로 변합니다.


애니메이션은 이 있기 때문에 기본적으로 중단없이 진행됩니다. 대기열은 jQuery가 비어있을 때까지 대기하는 애니메이션의 목록입니다. 괄호 (이 조각의 주변 곱슬 마크) 또는 다른 기능이 실행됩니다없이

$(this).animate({ 
    opacity: 1.0, 
    width: '234px' 
}, { 
    queue: false, // This skips the queue 
    duration: 'fast', 
    complete: function() { alert('the callback'); } // Your callback goes here... 
}); 
또한

라는 기능을 전달해야합니다 : 큐를 포기하려면, 애니메이션의 오버로드 된 버전 중 하나를 사용해야합니다 .

var temp = myFunc(); // gets called and the result is assigned... 
var temp = myFunc; // but this doesn't get called, and the function is passed. 
+0

The Wicked Flea. – GnrlBzik