아기 천사들~

코딩 어린이의 노트

css로 animation을 만들어 보자 첫번째

sunny0729 2023. 3. 3. 12:00
728x90
반응형

안녕하세요. ^-^

 

오늘은 조금 어려운 animation을 해볼까 합니다.

[ css ]만으로 animation을 만들 수 있답니다.

 

animation은 만들기에 따라 무수히 많이 만들 수 있어요.

그래서 animation은 몇 번에 걸쳐 포스팅을 해볼게요.

 

 

그리고 기본적으로 많이 쓰는 대표적인 몇 가지만

소개해 볼게요.

 

 

우선 animation에 대해서 알아보겠습니다.

[ css ]로 애니메이션을 만들려면 animation속성과 그 하위 속성을 지정해야 합니다.

이 속성은 중간 상태를 기술하지 않으며 중간 상태는 @keyframes를 이용하여 지정할 수 있습니다.

 

728x90

 

animation 하위 속성을 알려드릴게요.

 

animation-delay : 엘리먼트가 로드되고 나서 언제 애니메이션이 시작될지 지정합니다.
animation-direction : 애니메이션이 종료되고 다시 처음부터 시작할지 역방향으로 진행할지 지정합니다.
animation-duration : 한 싸이클의 애니메이션이 얼마에 걸쳐 일어날지 지정합니다.
animation-iteration-count : 애니메이션이 몇 번 반복될지 지정합니다. infinite로 지정하여 무한히 반복할 수 있습니다.
animation-name : 이 애니메이션의 중간 상태를 지정합니다. 중간 상태는 @keyframes 규칙을 이용하여 기술합니다.
animation-play-state : 애니메이션을 멈추거나 다시 시작할 수 있습니다.
animation-timing-function : 중간 상태들의 전환을 어떤 시간간격으로 진행할지 지정합니다.
animation-fill-mode : 애니메이션이 시작되기 전이나 끝나고 난 후 어떤 값이 적용될지 지정합니다.

 

 

간단한 예제를 하나 만들어 볼게요.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!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>
    <style>
        section{
            padding:100px; 
        }
        .box{
            width:100px;
            height:100px;
            background:#343434;
            margin:auto;
        }
 
        @-webkit-keyframes bounce {
            0%, 100%, 20%, 50%, 80% {-webkit-transform: translateY(0);transform: translateY(0)}
            40% {-webkit-transform: translateY(-30px);transform: translateY(-30px)}
            60% {-webkit-transform: translateY(-15px);transform: translateY(-15px)}
        }
        @keyframes bounce {
            0%, 100%, 20%, 50%, 80% {-webkit-transform: translateY(0);-ms-transform: translateY(0);transform: translateY(0)}
            40% {-webkit-transform: translateY(-30px);-ms-transform: translateY(-30px);transform: translateY(-30px)}
            60% {-webkit-transform: translateY(-15px); -ms-transform: translateY(-15px);transform: translateY(-15px)}
        }
        .bounce {-webkit-animation-name: bounce;animation-name: bounce;-webkit-animation-duration: 1s;animation-duration: 1s;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;}
        
    </style>
</head>
<body>
    <section>
        <div class="box bounce "></div>
    </section>
    <script src="jquery-3.6.2.min.js"></script>
</body>
</html>
cs

 

무한히 바운스 되는 예제입니다.

확실하게 보이게 하기 위해 무한히 반복하는 예제로 만들어 봤습니다.

 

 

실행하면 이렇게 나옵니다.

@keyprames는 다음 포스팅에서 다뤄 볼까 합니다.

@keyprames도 쓸 말이 참으로 많은 관계로 글이 길어질 것 같거든요.

 

animation-delay는 기본값이 0s이기 때문에 값을

지정해 주지 않으면 animation이 되지 않습니다.

 

한 번 만들어두면 여기저기 다 쓸 수 있기 때문에 너무 좋아요.

만드는 과정이 힘들고 어려울 뿐 .....

 

 

그래도 모두 힘내서 공부해 보아요.

설명을 잘할 자신은 없지만 제가 아는 선에서 열심히 포스팅해 보겠습니다.

 

오늘 하루도 즐겁고 행복한 하루 보내세요.

 

728x90
반응형