ãã¦ã³ããããã¼ã«ã®ã¢ãã¡ã¼ã·ã§ã³
ãã¦ã³ããããã¼ã«ãä½ã£ã¦ãã ããããã¼ã«ãã¯ãªãã¯ããã¨åãã確èªã§ãã¾ãã:
ãã¦ã³ããããã«ã¯ãposition:relative ããã¤ãã£ã¼ã«ãå
ã®ãã¼ã«ã«å¯¾ãã¦ãCSS ãããã㣠top 㨠position:absolute ã使ããã¨ã§å®ç¾ã§ãã¾ãã
ãã£ã¼ã«ãã®ä¸é¨ã®åº§æ¨ã¯ field.clientHeight ã§ããããããtop ããããã£ã¯ãã¼ã«ä¸é¨ã®åº§æ¨ã®ãããä¸ç«¯ã®ä½ç½®ã¯ field.clientHeight - ball.clientHeight ã«ãªãã¾ãã
ãããã£ã¦ãtop ã 0 ãã field.clientHeight - ball.clientHeight ã¾ã§ã¢ãã¡ã¼ããã¾ãã
ãã¨ã¯ãâãã¦ã³ãâ 广ãè¡ãããã«ã¿ã¤ãã³ã°é¢æ° bounce ã easeOut ã¢ã¼ãã§ä½¿ãã¾ãã
ãããã¢ãã¡ã¼ã·ã§ã³ã®æçµçãªã³ã¼ãã§ã:
let to = field.clientHeight - ball.clientHeight;
animate({
duration: 2000,
timing: makeEaseOut(bounce),
draw(progress) {
ball.style.top = to * progress + 'px'
}
});
