Front-End/Javascript

[Javascript] 프레임 애니메이션

09009 2023. 4. 4. 22:44

자바스크립트에서 타이머 함수를 사용하면 특정 시간마다 코드를 실행시킬 수 있다.

 

• 타이머 함수

setInvertal(함수, 시간) 특정한 시간마다 함수 실행
setTimeout(함수, 시간) 특정한 시간 후에 함수 실행
clearInterval(식별번호) setInvertal() 함수로 설정한 타이머 제거
clearTimeout(식별번호) setTimeout() 함수로 설정한 타이머 제거

포털 사이트 실시간 검색어는 일정 시간마다 서버에 데이터를 요청하여 사용자에게 보여주는데, 여기에서

setInvertal() 함수가 사용된다.

 

 

프레임 애니메이션

아래 소스코드를 실행하면 이미지가 1초에 20번 전환되면서 사람이 달리는 애니메이션을 확인할 수 있다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload = function() {
            // 변수를 선언합니다.
            var count = 0;
            var image = document.getElementById('image');
            var frames = ['0.png','1.png','2.png','3.png','4.png','5.png',
            '6.png','7.png','8.png','9.png','10.png','11.png','12.png','13.png','14.png',];

            // 타이머 반복을 시작합니다.
            setInvertal(function () {
                image.src = frames[count % frames.length];
                count = count + 1;
            }, 1000 / 20);
        };
    </script>
</head>
<body>
    <img id="image" src="1.png">
</body>
</html>

 

그리고 setInvertal() 함수를 사용하면 다른 이벤트(마우스 스크롤 등)로 변경하면 마우스를 드래그할 때마다 회전하는

자동차 애니메이션도 만들 수 있다. (차량 이미지를 드래그하여 원하는 모습을 보는 것)