2012-03-07 5 views
0

애니메이션이 길고 $ (this) .position(). top이 너무 일찍 계산되므로 요소의 위치를 ​​가져 오는 데 문제가 있습니다.jQuery animate - 요소의 미래 위치를 얻으십시오.

요소의 미래 위치 값을 그 위치로 애니 메이팅하기 전에 어떻게 얻을 수 있습니까?

+1

현재 위치를 가져 와서'.animate' 호출에 보낼 조정 값을 추가 하시겠습니까? –

+0

미래의 위치는 유한 값이 아니며 항상 다릅니다. 이 경우에는 텍스트가있는 아코디언입니다. – Collin

답변

1

그건 당신이 원하는 것이 아닙니다. 애니메이션이 완료된 후 요소의 위치를 ​​가져 오려고합니다. 애니메이션에 콜백 함수를 추가하고 해당 콜백 함수 내부에서 위치를 호출해야합니다. 여기 있습니다 ->

$("whatever").animate({ 
    //do stuff for animation 
}, 'delay', function(){ 
    //our animation has completed, this is our callback function. 
    //we can now successfully get our position. 
    $(this).position().top 
}); 

희망이 있습니다.

  • 또한

, 당신의 동의 등급을 향상 20 %를 고려 중 질문이 제대로 포맷하는 것을 의미하거나 커뮤니티 지침을 따르고 있지하시기 바랍니다.

https://stackoverflow.com/faq Stackoverflow.com

와 상호 작용 이해하기 FAQ를 읽어 보시기 바랍니다

  • 사이드 참고 :

또한 전체 FAQ를 읽어 배지 '분석'을 얻을 것이다. 나는 그것을 매우 제안한다.

+0

일단 애니메이션이 끝나면 요소의 위치는 필요 없습니다. 애니메이션을 시작하기 전에 요소의 끝 위치가 필요합니다. 추신 내 질문에 형식이 잘못되었습니다. 나는 이것에 상당히 새롭다. 그리고 나는 용어를 두껍게 가지고 있지 않다. 작동하는 답변을받지 못했지만 도움이된다면 위쪽 화살표를 클릭하여 +1합니다. – Collin

+0

문제는 없습니다. 나는 그 문제가 무엇인지 이해하는 데 어려움을 겪고 있다고 생각한다. $ (this) .position(). top은 위치가 가장 가까운 컨테이너로부터의 margin을 제공합니다 : relative (가장 가까운 'offset parent'). 원하는 것입니까? 또는 문서와 관련된 위치를 원하십니까? 창? – Ohgodwhy