λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
CSS/Animation

μ• λ‹ˆλ©”μ΄μ…˜ λ°•μŠ€

by oranssy 2022. 8. 29.
728x90
λ°˜μ‘ν˜•

⭐️ μ• λ‹ˆλ©”μ΄μ…˜ 효과 : 톡톡 νŠ€λŠ” λ°•μŠ€ ⭐️


01. μ• λ‹ˆλ©”μ΄μ…˜ 효과

μ• λ‹ˆλ©”μ΄μ…˜(Animation) νš¨κ³ΌλŠ” HTML μš”μ†Œμ— μ μš©λ˜λŠ” CSS μŠ€νƒ€μΌμ„ λ‹€λ₯Έ CSS μŠ€νƒ€μΌλ‘œ λΆ€λ“œλŸ½κ²Œ λ³€ν™”μ‹œν‚΅λ‹ˆλ‹€.
μ• λ‹ˆλ©”μ΄μ…˜μ€ μ• λ‹ˆλ©”μ΄μ…˜μ„ λ‚˜νƒ€λ‚΄λŠ” CSS μŠ€νƒ€μΌκ³Ό μ• λ‹ˆλ©”μ΄μ…˜μ˜ μ—°μ†λœ μž₯λ©΄(sequence)λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 볡수의 ν‚€ν”„λ ˆμž„(@keyframes)λ“€λ‘œ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

   ___ μ°Έκ³ ν•˜κΈ° ___
  `1   @keyframes : CSS μ• λ‹ˆλ©”μ΄μ…˜μ—μ„œ ꡬ간을 μ •ν•˜κ³  각 κ΅¬κ°„λ³„λ‘œ μ–΄λ–€ μŠ€νƒ€μΌμ„ μ μš©μ‹œν‚¬μ§€ μ •ν•©λ‹ˆλ‹€.


02. 톡톡 νŠ€λŠ” λ°•μŠ€ λ§Œλ“€κΈ°

[1] < div > λ°•μŠ€ λ§Œλ“€κΈ°

μƒμž ν•˜λ‚˜λ§Œ λ§Œλ“€μ–΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

    <div class="box"></div>

[2] CSS μ„€μ •ν•˜κΈ°

@keyframes 을 μ΄μš©ν•˜μ—¬ μ• λ‹ˆλ©”μ΄μ…˜μ˜ μ›€μ§μž„μ„ μ‘°μ ˆν•©λ‹ˆλ‹€.

  body {
    height: 100vh;
    background-image: linear-gradient(to top, #7FFFD4, #98FB98);    // κ·ΈλΌλ°μ΄μ…˜ 배경색 λ„£κΈ°
  }
  .box {
    width: 50px;        // μ •μ‚¬κ°ν˜• λ°•μŠ€
    height: 50px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;       // κ°€μš΄λ° μ •λ ¬
  }
  
  .box::before {
    content: '';
    width: 50px;
    height: 5px;
    background: #000;
    position: absolute;
    top: 58px;
    left: 0;
    border-radius: 50%;
    opacity: 0.2;
    animation: shadow 0.6s linear infinite;   // 그림자 효과 λ¬΄ν•œλ°˜λ³΅
  }
  
  @keyframes shadow {
    0% {
      transform: scale(1, 1)
    }
    50% {
      transform: scale(1.2, 1)
    }
    100% {
      transform: scale(1, 1)
    }
  }
  
  .box::after {
    content: '';
    background:	#fff;
    width: 50px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 3px;
    animation: load 0.6s linear infinite;
  }
  
  @keyframes load {
    17% {
      border-bottom-right-radius: 3px;
    }
    25% {
      transform: translatey(9px) rotate(22.5deg);
    }
    50% {
      transform: translatey(18px) scale(1, 0.9) rotate(45deg);
      border-bottom-right-radius: 40px;
    }
    75% {
      transform: translatey(9px) rotate(67.5deg);
    }
    100% {
      transform: translatey(0px) rotate(90deg);
    }
  }

결과보기

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€