Baseline Widely available
window.requestAnimationFrame()
ë©ìëë ë¸ë¼ì°ì ìê² ìíí기를 ìíë ì ëë©ì´ì
ì ìë¦¬ê³ ë¤ì 리íì¸í¸ ë°ë¡ ì ì ë¸ë¼ì°ì ê° ì ëë©ì´ì
ì ì
ë°ì´í¸í ì§ì ë í¨ì를 í¸ì¶íëë¡ ìì²í©ëë¤. ì´ ë©ìëë 리íì¸í¸ ì´ì ì í¸ì¶í ì¸ìë¡ ì½ë°±ì ë°ìµëë¤.
ì°¸ê³ : ë¤ì 리íì¸í¸ìì ë¤ë¥¸ íë ìì ì ëë©ì´ì
ì ì©í ë ¤ë©´ ì½ë°± 루í´ì´ ë°ëì ì¤ì¤ë¡ requestAnimationFrame()
ì í¸ì¶í´ì¼ í©ëë¤. requestAnimationFrame()
ì íëì ì¥ë©´ì
ëë¤.
íë©´ì ì ëë©ì´ì
ì ì
ë°ì´í¸í ì¤ë¹ê° ë ëë§ë¤ ì´ ë©ìë를 í¸ì¶í´ì¼ í©ëë¤. ì´ë ë¸ë¼ì°ì ê° ë¤ì 리íì¸í¸ë¥¼ ìíí기 ì ì ì ëë©ì´ì
í¨ì를 í¸ì¶íëë¡ ìì²í©ëë¤. ì½ë°±ì ìë ë³´íµ 1ì´ì 60íì§ë§, ì¼ë°ì ì¼ë¡ ëë¶ë¶ì ì¹ ë¸ë¼ì°ì ììë W3C ê¶ì¥ì¬íì ë°ë¼ ëì¤íë ì´ ì£¼ì¬ì¨ê³¼ ì¼ì¹ë©ëë¤. requestAnimationFrame()
ì ë°°í°ë¦¬ ìëª
ê³¼ ì±ë¥ í¥ìì ìí´ ëë¶ë¶ì ë¸ë¼ì°ì ìì 백그ë¼ì´ë íë¤ì´ë ì¨ê²¨ì§ <iframe>
ë¤ì´ ì¤íë ë ì¤ë¨ë©ëë¤.
ì½ë°± ë©ìëìë ë¨ì¼ ì¸ì DOMHighResTimeStamp
ê° ì ë¬ëì´ íì¬ ìê°(ìê° ë°ìì´íì ë°ë¦¬ì´ ìì 기ë°ë)ì ëíë
ëë¤. requestAnimationFrame()
ì ìí´ ë기 ì¤ì¸ ë¤ìì ì½ë°±ì´ í íë ììì ì¤íë기 ììí ë, ê°ê°ì ì½ë°±ì 모ë ì´ì ì½ë°±ì ìì
ëì ê³ì°íë ëì ìê°ì´ ì§ëê°ììë ë¶êµ¬íê³ ëì¼í íìì¤í¬í를 ë°ìµëë¤(ìëì ì½ë ìì ììë ì¤ì§ íìì¤ííê° ë³í ëìë§ íë ìì ì ëë©ì´ì
ì ì ì©í©ëë¤. ì¦, 첫ë²ì§¸ ì½ë°±ììë§ ì ì©ë©ëë¤). ì´ íìì¤í¬íë ë°ë¦¬ì´ ë¨ìì ìì§ìì´ì§ë§, ìµì ì ë°ëë 1ms(1000 µs)ì
ëë¤.
ê²½ê³ : íì íë ììì ì¼ë§ë ë§ì ì ëë©ì´ì ì´ ì§íë ê²ì¸ì§ ê³ì°í기 ìí´ ì²« ë²ì§¸ ì¸ì(í¹ì íì¬ ìê°ì ê°ì§ ì ìë ëªëª ë¤ë¥¸ ë©ìë)를 ì¬ì©í´ì¼ í©ëë¤. ê·¸ë ì§ ìì¼ë©´ ëì 주ì¬ì¨ìì ì ëë©ì´ì ì´ ë¹ ë¥´ê² ì¤íë ê²ì ëë¤. ì´ë¥¼ ìííë ë°©ë²ì ëí´ìë ìë ìì 를 ì°¸ê³ í´ì£¼ì¸ì.
구문requestAnimationFrame(callback);
íë¼ë¯¸í°
callback
ë¤ì 리íì¸í¸ë¥¼ ìí ì ëë©ì´ì
ì ì
ë°ì´í¸í ë í¸ì¶í í¨ì. ì½ë°± í¨ììë requestAnimationFrame()
ì´ ì½ë°± í¨ìë¤ì ì¤íì ììí ìì ì ëíë´ë performance.now()
ì ìí´ ë°íëë ê²ê³¼ ì ì¬í DOMHighResTimeStamp
ë¨ì¼ ì¸ìê° ì ë¬ë©ëë¤.
ì½ë°± 목ë¡ì í목ì ê³ ì íê² ìë³íë ìì² idì¸ long
ì ì ê°. ì´ê²ì 0ì´ ìë ê°ì´ì§ë§, ê·¸ ê°ì ëí´ ì´ë í ë¤ë¥¸ ì¶ì¸¡ì í ì ììµëë¤. ì´ ê°ì window.cancelAnimationFrame()
ì ì ë¬í´ ì½ë°± ìì²ì ì·¨ìí ì ììµëë¤.
ì´ ìì ìì, ììë 2ì´(2000 ë°ë¦¬ì´) ëì ì ëë©ì´ì
ì´ ì ì©ë©ëë¤. ììë 0.1px/ms ìëë¡ ì¤ë¥¸ìª½ì¼ë¡ ì´ëí´ì, ê·¸ê²ì ìëì ìì¹(CSS í½ì
)ë 0.1 * elapsed
ë¡ ì ëë©ì´ì
ì ìì ì´í 경과ë ìê°(ë°ë¦¬ì´) í¨ììì ê³ì°ë ì ììµëë¤. ììì ìµì¢
ìì¹ë ì²ì ìì¹ìì ì¤ë¥¸ìª½ì¼ë¡ 200px(0.1 * 2000
) ì´ëí ìì¹ì
ëë¤.
const element = document.getElementById("some-element-you-want-to-animate");
let start, previousTimeStamp;
let done = false;
function step(timestamp) {
if (start === undefined) {
start = timestamp;
}
const elapsed = timestamp - start;
if (previousTimeStamp !== timestamp) {
// Math.min()ì ì¬ê¸°ì ììê° ì íí 200pxì ë©ì¶ëì§ íì¸í기 ìí´ ì¬ì©ë©ëë¤
const count = Math.min(0.1 * elapsed, 200);
element.style.transform = `translateX(${count}px)`;
if (count === 200) done = true;
}
if (elapsed < 2000) {
// 2ì´ ì´íì ì ëë©ì´ì
ì¢
ë£
previousTimeStamp = timestamp;
if (!done) {
window.requestAnimationFrame(step);
}
}
}
window.requestAnimationFrame(step);
ëª
ì¸ ë¸ë¼ì°ì í¸íì± í¨ê» 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4