requestAnimationFrame
을 사용하여 애니메이션을 만들었습니다. Windows Chrome 및 IE에서 올바르게 작동합니다. Safari (Safari 6 및 7 테스트)가 작동하지 않습니다. rAF는 Date
타임 스탬프 대신 DOMHighResTimestamp
이됩니다. 그게 다 괜찮아요, 좋은, 그리고 내가 예상했던대로, 지금은 사양의 일부입니다. 그러나 찾을 수있는 한 현재 DOMHighResTimestamp
(예 : window.performance
은 접두사가있는 경우에도 사용할 수 없음)을 얻을 수있는 방법이 없습니다. 따라서 시작 시간을 Date
타임 스탬프로 만들면 rAF 콜백 (매우 작은 음수) 내에서 진행률을 결정할 때 크게 잘못 동작합니다.Safari 및 requestAnimationFrame은 DOMHighResTimestamp를 가져옵니다. window.performance not available
사파리에서 this JSBin을 보면, 전혀 애니메이션이 적용되지 않습니다. startTime
가 다음 프레임에 time
매개 변수로 설정됩니다 있도록
time
매개 변수가
undefined
) "를 건너"로 변경했습니다. 작동하는 것처럼 보이지만 프레임을 건너 뛰는 것은 조금은 진절머리 나는 것처럼 보입니다.
window.performance
이 부족하면 Safari에서 현재 DOMHighResTimestamp
을 얻는 방법이 있습니까? 또는 대안으로 rAF를 일종의 레거시 모드로 강제 실행하여 대신 Date 타임 스탬프를 가져 오게 할 수 있습니까?
사파리가 다른 방식으로는 얻을 수없는 형식으로 매개 변수를 제공하는이 불일치가있는 이유를 아는 사람이 있습니까?
기본적으로 두 번째 JSBin과 같은 방식으로 보입니다. 첫 번째 프레임을 놓고 두 번째 프레임에서 애니메이션을 시작하십시오. 그것은 작동하지만 Safari가 rAF 외부의 DOMHighResTimestamp에 액세스 할 수있는 방법을 제공하지 않는 이유에 대한 내 질문에 실제로 대답하지 않습니다. –
그것은 구현되지 않은 것입니다. 나는 어느 시점에서 그럴 것이라고 확신하지만, 지금은 계산을 저장하고 전달 된 것을 사용하십시오. – ericjbasti
그래서 아무것도 놓치지 않았습니다. 그들은 정말로 rAF 콜백 외부의 DOMHighResTimestamp에 대한 액세스 권한을 부여하지 않습니다. –