자바 스크립트 setInterval
을 사용하여 애니메이션 효과를 회전 시키려면 1.5 초, 1.5 초는 360도 회전하는 애니메이션을 유지하고 싶습니다. 1 밀리 초에서 증가를 계산하고 millisecond.Here 당에서는 setInterval 함수를 사용하여 내 코드입니다 : 애니메이션이 성공적으로 실행할 수자바 스크립트 setInterval 함수를 사용하여 애니메이션 효과를 얻으려면 : 예상보다 느림
var duration= 1500;//The animation duration time
var rotate = 360;//The rotate need to be rotate
var degPerSec = rotate/parseFloat(duration); //the increment per millisecond
var degree = 0;//the begin degree
console.time('rotate');
var timer = setInterval(function() {
degree = degree + degPerSec;
$('#test')[0].style.MozTransform = 'rotate(' + degree + 'deg)';
$('#test')[0].style.WebkitTransform = 'rotate(' + degree + 'deg)';
if (degree >= rotate) { //if reach 360 degree , clear the interval
clearInterval(timer);
console.timeEnd('rotate');// caculate the duration
}
}, 1)
})
하지만 내가 전체를 계산하는 console.time
를 사용할 때뿐만 아니라 1.5S 마지막 보인다 지속 시간은 약 6 초입니다! 1.5 시가 아닙니다. 왜 이런 일이 일어 났습니까?이 문제를 어떻게 해결할 수 있습니까? : 여기
업데이트입니다 나는 CSS3를 사용하지 않는 이유 : 회전 정도가 외부 패스 양식을 필요로 매개 변수로 사촌, 이미
JavaScript에서는 타이머 간격이 보장되지 않으며 '1ms'은 거의 불가능합니다. [이 기사] (http : // ejohn.org/blog/how-javascript-timers-work /)를 참조하십시오. – bfavaretto