나는이 자바 스크립트 튜토리얼에서 읽었습니다. http://www.switchonthecode.com/tutor...ccordion-menus 기본적으로 jquery가 아닌 순수한 자바 스크립트를 사용하여 아코디언을 만드는 방법을 보여줍니다. 애니메이션 추적의 실제 부분까지 모두 나에게 의미가있었습니다. 그는 "모든 기능 덕분에 애니메이션 기능에서 가장 먼저 수행 한 작업은 마지막 애니메이션 반복 이후 경과 된 시간을 파악하는 것입니다." (. 일() 다음 getTime()을) 코드 :자바 스크립트 아코디언 - 시간 추적 질문
var elapsedTicks = curTick - lastTick;
lastTick이 함수가 호출 될 때의 값과 동일하고 기능이 수신 될 때 curTick의 값과 동일 그리고,이 코드를 사용하여 . 나는 왜 우리가 여기서 다른 하나를 빼는 이유를 이해하지 못한다. 나는이 두 값 사이에 눈에 띄는 시차가 있다는 것을 상상할 수 없다. 아니면 뭔가를 놓친 것일 수도 있습니다. animate() 함수는 메뉴 제목을 클릭 할 때마다 한 번만 호출되거나 증분 애니메이션 효과를 만들기 위해 여러 번 호출됩니까?
setTimeout("animate(" + new Date().getTime() + "," + TimeToSlide + ",'" + openAccordion + "','" + nID + "')", 33);
응답 해 주셔서 감사합니다.
그래, 이해가 안되는 "이전"부분입니다. 사용자가 제목을 클릭하고 runAccordion 메서드가 호출되고 몇 개의 변수가 설정된 다음 setTimeout 함수는 33 밀리 초 동안 기다린 다음 animate() 함수를 실행하여 현재 시간 (Date.getTime())을 호출 매개 변수로 전달합니다 lastTick. 그래서 내 두뇌는 사용자가 제목을 클릭하면 33 밀리 초를 기다린 다음 애니메이션을 트리거한다고 생각합니다. 그래서 lastTick이 이전에 호출 된 함수의 값과 같을 수 있다는 것을 이해하지 못합니다. – JohnMerlino
animate()가 호출되기 전에 new Date(). getTime()이 먼저 계산 된 다음 33 밀리 초가 발생합니까? 그렇다면 튜토리얼은 나에게 의미가있다. – JohnMerlino
예,'getTime()'이 호출되고 Number 결과가 String으로 변환됩니다. 그런 다음 Number를 포함하여 String에서 일부 코드를 만듭니다. String이 작성된 후 33ms 후에 시간 초과가 발생하면 해당 String으로 작성된 코드가 실행됩니다. Strings에서 코드를 생성하는 것은 좋지 않습니다. – bobince