🧚🏻‍♂️ HTML , CSS

CSS - 애니메이션 속성

ji-hyun 2021. 9. 28. 06:15

아래와 같은 애니메이션을 만들 것이다.

 

 

 

 <div id="wrap">
        <div id="rec">rec</div>
        <div id="cir">cir</div>
    </div>

 

wrap 안에 rec 와 cir 이 있다.

 

 

 

<style>

        * { margin:0; padding:0; }
        
        #wrap { position:relative; }
        #wrap #rec { 
            background-color:#ffff00;
            width:100px; height:100px; line-height:100px; text-align:center;

            animation-name:ani1;
            animation-duration:2s;
            animation-timing-function:ease-in;
        }

        @keyframes ani1 {
            from { width:100px; }
            to { width:500px; }
        }

        #wrap #cir { 
            background-color:#ff00ff;
            width:100px; height:100px; position:absolute; left:0; top:110px;
            line-height:100px; text-align:center; border-radius:100px;

            animation-name:ani2;
            animation-duration:2s;
            animation-timing-function:ease-in;
        }

        @keyframes ani2 {
            from { left:0px; top:110px; 
                   transform:rotate(0deg); }
            to { left:500px; top:610px; 
                 transform:rotate(40deg); }
        }

    </style>

 

wrap 에다가 position: relative 로 지정한 까닭은 -> cir 이 position: absolute 로 지정해주기 위함이다.

2021.09.21 - [html , css] - CSS - 수직 가운데 정렬, position 속성

 

애니메이션 속성을 지정하려면 @keyframes 이름 이렇게 써야 한다.

 

 

 

 

 

 

 

 

 

 

 

 

이번엔 이런 애니메이션을 만들어 볼 것이다.

 

<div id="wrap">
        <div id="lnb">
            <ul>
                <li><a href="#none">lnb01 </a></li>
                <li><a href="#none">lnb02 </a></li>
                <li><a href="#none">lnb03 </a></li>
                <li><a href="#none">lnb04 </a></li>
                <li><a href="#none">lnb05 </a></li>
            </ul>
        </div>

        <br />

        <div id="rec"> rec </div>
    </div>

 

전체는 wrap 으로 감싸고 있고, 그 안에 lnb 와 rec 가 존재한다.

 

 

<style>

        * { margin:0; padding:0; }
        li { list-style:none; }

        #wrap { width:1000px; margin:0 auto; position:relative; }
        #wrap #lnb { width:250px; background-color:#cccccc; }
        #wrap #lnb ul {  }
        #wrap #lnb ul li a { width:100px; height:50px; line-height:50px; border-radius:10px; margin-top:2px;
                             padding:10px 25px; background-color:#ffd800; display:block; color:#ffffff;
                             font-weight:bold; }
        #wrap #lnb ul li a:hover { 
            animation-name:ani;
            animation-duration:2s;
            animation-iteration-count:infinite;
        }

        @keyframes ani {
            from { width:100px; }
            to { width:200px; background-color:#a08a10; }
        }

        #wrap #rec { position:absolute; width:100px; height:100px; line-height:100px; border-radius:10px; text-align:center; background-color:#ffff00; left:0;
                     animation-name:rec_ani;
                     animation-duration:2s;
                     animation-iteration-count:infinite;
                     animation-direction:alternate;
        }

         #wrap #rec:hover { animation-play-state:paused; }

        @keyframes rec_ani {
            from { width:100px; left:0; transform:rotate(0deg); }
            to { width:200px; height:200px; border-radius:100px; line-height:200px; background-color:#a08a10; left:500px; transform:rotate(360deg); font-size:4em; }
        }

    </style>

 

 

animation-direction : alternate

-> 역방향으로도 진행할 수 있게 한다. 이 속성을 지정한하면 원이 왔다갔다 움직이지 않는다. 시작지점에서만 반복할 뿐이다.

 

 

 

'🧚🏻‍♂️ HTML , CSS' 카테고리의 다른 글

검색창 만들기  (0) 2021.11.02
CSS 그리드를 이용한 이미지 갤러리  (0) 2021.09.29
CSS - transition 속성  (0) 2021.09.28
CSS - grid 속성  (0) 2021.09.27
CSS - 가변형 그리드 (옛날 방식)  (0) 2021.09.27