728x90
๋ฐ์ํ

โญ๏ธ ์ ๋๋ฉ์ด์ ํจ๊ณผ : ๋น๊ธ๋น๊ธ ์ ๋ โญ๏ธ
01. ์ ๋๋ฉ์ด์ ํจ๊ณผ
์ ๋๋ฉ์ด์
(Animation) ํจ๊ณผ๋ HTML ์์์ ์ ์ฉ๋๋ CSS ์คํ์ผ์ ๋ค๋ฅธ CSS ์คํ์ผ๋ก ๋ถ๋๋ฝ๊ฒ ๋ณํ์ํต๋๋ค.
์ ๋๋ฉ์ด์
์ ์ ๋๋ฉ์ด์
์ ๋ํ๋ด๋ CSS ์คํ์ผ๊ณผ ์ ๋๋ฉ์ด์
์ ์ฐ์๋ ์ฅ๋ฉด(sequence)๋ฅผ ๋ํ๋ด๋ ๋ณต์์ ํคํ๋ ์(@keyframes)๋ค๋ก ์ด๋ฃจ์ด์ง๋๋ค.
___ ์ฐธ๊ณ ํ๊ธฐ ___
`1 @keyframes : CSS ์ ๋๋ฉ์ด์
์์ ๊ตฌ๊ฐ์ ์ ํ๊ณ ๊ฐ ๊ตฌ๊ฐ๋ณ๋ก ์ด๋ค ์คํ์ผ์ ์ ์ฉ์ํฌ์ง ์ ํฉ๋๋ค.
02. ์ ๋ ๊ฐ๊ฐ ๋น๊ธ ๋๋ ํจ๊ณผ ๋ง๋ค๊ธฐ
[1] < div > ๋ฐ์ค ๋ง๋ค๊ธฐ
div ์์ span ์ผ๋ก ์ ๋ ๊ฐ๋ฅผ ๋ง๋ค์ด ์ค๋๋ค.
<div class="loading"> <span class="circle1"></span> <span class="circle2"></span> </div>
[2] CSS ์ค์ ํ๊ธฐ
@keyframes ์ ์ด์ฉํ์ฌ ์ ๋๋ฉ์ด์ ์ ์์ง์์ ์กฐ์ ํฉ๋๋ค.
body { height: 100vh; background-image: linear-gradient(180deg, #191970 0%, #4B0082 100%) // ๊ทธ๋ผ๋ฐ์ด์
๋ฐฐ๊ฒฝ์ } .loading { position: absolute; left: 50%; top: 50%; width: 20px; height: 150px; animation: loading 1s ease 100; // ์ ๋๋ฉ์ด์
์ ๋๋ถ๋ถ์๋ ์ฒ์ฒํ ์์ง์ด๋๋ก } .loading .circle1 { display: block; width: 20px; height: 20px; border-radius: 50%; background: #FFF5EE; } .loading .circle2 { display: block; width: 20px; height: 20px; border-radius: 50%; background: #F0F8FF; margin-top: 110px; // ์ ๊ฒน์น์ง ์๊ฒ ๋จ์ด๋จ๋ ค ๋๊ธฐ } @keyframes loading { 0% { transform: translate(-50%, -50%) rotate(0deg) } 100% { transform: translate(-50%, -50%) rotate(360deg) } }
๊ฒฐ๊ณผ๋ณด๊ธฐ
728x90
๋ฐ์ํ
'CSS > Animation' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CSS animation (3) | 2022.09.08 |
---|---|
SVG animation (5) | 2022.09.08 |
์ ๋๋ฉ์ด์ ํจ๊ณผ _ ๋ฌดํ๋ ๊ณต (5) | 2022.09.05 |
์ ๋๋ฉ์ด์ ๋ฐ์ค (5) | 2022.08.29 |
์ ๋๋ฉ์ด์ - ๊ผฌ๋ฆฌ ํ๋๋ ๊ฐ์์ง ๋ง๋ค๊ธฐ (4) | 2022.08.18 |
๋๊ธ