⏩ CSS Animation

YeonnΒ·2024λ…„ 8μ›” 23일
0

HTML+CSS

λͺ©λ‘ 보기
17/18
post-thumbnail

❓ CSS transform

πŸ‹ μš”μ†Œμ˜ νšŒμ „, 크기, 기울기, μœ„μΉ˜( 이동 효과 ) 등을 λ³€ν˜•ν•˜μ—¬ λ‹€μ–‘ν•œ μ‹œκ°μ  효과 κ΅¬ν˜„

.class {
	transform: rotate(30deg);
	transform: scale(1.2);
	transform: skew(20deg, 25deg); /* xμΆ•, yμΆ• */
	transform: translate(10px, 20px); /* xμΆ•, yμΆ• */
}

βœ”οΈΒ rotate()

  • μž…λ ₯ν•œ κ°λ„λ§ŒνΌ νšŒμ „
    • μ–‘μˆ˜: μ‹œκ³„ λ°©ν–₯ νšŒμ „
    • 음수: λ°˜μ‹œκ³„ λ°©ν–₯ νšŒμ „
  • λ‹¨μœ„: deg, turn

βœ”οΈΒ scale()

  • μž…λ ₯ν•œ 배율만큼 ν™•λŒ€ 및 μΆ•μ†Œ
    • μ–‘μˆ˜: 배율둜 ν™•λŒ€
    • 음수: ν•΄λ‹Ή μΆ•μœΌλ‘œ λ’€μ§‘μœΌλ©΄μ„œ ν™•λŒ€
  • λ‹¨μœ„: 배율( 0.1, 1.2, 3 … )

βœ”οΈΒ skew()

  • μž…λ ₯ν•œ κ°λ„λ§ŒνΌ λΉ„ν‹‚
  • X, YμΆ•
  • λ‹¨μœ„: deg, rad

βœ”οΈΒ translate()

  • μž…λ ₯ν•œ 만큼 μœ„μΉ˜ λ³€κ²½
  • λ‹¨μœ„: px, em, %, in, …

❗️ translate/scale vs position/width/height

  • translate / scale
    • μ›λž˜μ˜ μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ λ™μž‘
    • λ¬Έμ„œ 흐름 상 μ›λž˜ μœ„μΉ˜μ— μ‘΄μž¬ν•˜λŠ” 것 처럼 λ³΄μž„
      • λΆ€λͺ¨ μš”μ†Œμ— 영ν–₯을 주지 μ•ŠμŒ
      • λ¬Έμ„œμ˜ 흐름과 관계 없이 λ…λ¦½μ μœΌλ‘œ μ‘°μ •
  • position / width / height
    • λ¬Έμ„œμ˜ 흐름을 벗어남
    • λ¬Έμ„œ 흐름 상 μ›λž˜ μœ„μΉ˜μ— 곡간을 μ°¨μ§€ν•˜μ§€ μ•ŠμŒ
      • λΆ€λͺ¨ μš”μ†Œμ— 영ν–₯을 쀌

❓ CSS transition

πŸ‹ CSS 속성이 변경될 λ•Œ μ μš©λ˜λŠ” μ• λ‹ˆλ©”μ΄μ…˜
μŠ€νƒ€μΌ 변경이 생겼을 λ•Œ, μ• λ‹ˆλ©”μ΄μ…˜μ²˜λŸΌ λ³€ν˜•μ΄ λ§€λ„λŸ½κ²Œ μ΄λ£¨μ–΄μ§€κ²Œ ν•œλ‹€.

.class {
	transition: property duration timing-function delay;
	/* example
		transition: border 0.2s linear 1s,
								background-color: 0.2s ease-in;
	*/
}

βœ”οΈΒ transition

  • λ‹€λ₯Έ transition 속성을 μ΄μš©ν•œ μŠ€νƒ€μΌμ„ ν•œ 쀄에 μ„€μ •, μΆ•μ•½ν˜•

βœ”οΈΒ transition-property

  • 효과λ₯Ό μ μš©ν•˜κ³ μž ν•˜λŠ” CSS 속성

βœ”οΈΒ transition-duration

  • 효과의 지속 μ‹œκ°„( default = 0 )

βœ”οΈΒ transition-timing-function

  • 효과의 타이밍 ν•¨μˆ˜
    • ease: default, 처음과 끝은 느리고 쀑간은 λΉ λ₯΄κ²Œ λ³€ν™”
    • linear: μ‹œμž‘λΆ€ν„° λκΉŒμ§€ μΌμ •ν•œ μ†λ„λ‘œ λ³€ν™”
    • ease-in: μ²˜μŒμ—λŠ” 느리게, λ‚˜λ¨Έμ§€λŠ” μΌμ •ν•œ μ†λ„λ‘œ λ³€ν™”
      • 주둜 μš”μ†Œκ°€ λ‚˜νƒ€λ‚˜λŠ” 효과 κ΅¬ν˜„
    • ease-out: μ²˜μŒμ—λŠ” μΌμ •ν•œ 속도, λ‚˜λ¨Έμ§€λŠ” 느리게 λ³€ν™”
      • 주둜 μš”μ†Œκ°€ μ‚¬λΌμ§€λŠ” 효과 κ΅¬ν˜„
    • ease-in-out: 처음과 끝은 느리고 쀑간은 λΉ λ₯΄κ²Œ λ³€ν™”
      • ease 보닀 λ”μš± κΈ‰κ²©ν•œ λ³€ν™”
      • 주둜 μš”μ†Œκ°€ λ‚˜νƒ€λ‚˜κ³  μ‚¬λΌμ§€λŠ” 효과λ₯Ό κ΅¬ν˜„ν•  λ•Œ μ‚¬μš©

βœ”οΈΒ transition-delay

  • νš¨κ³Όκ°€ λ‚˜νƒ€λ‚˜κΈ° μ „ 지연 μ‹œκ°„

βœ”οΈΒ ,

  • property λ‚˜μ—΄ μ‹œμ—λŠ” ,둜 κ΅¬λΆ„ν•˜μ—¬ μž‘μ„±


❓ Animation

πŸ‹ μŠ€νƒ€μΌμ˜ λ³€ν™”λ₯Ό 톡해 μ• λ‹ˆλ©”μ΄μ…˜μ„ ν‘œν˜„
duaration κ³Ό delay μˆœμ„œ μž‘μ„±μ— 주의 !!

❗️ Animation μ •μ˜ν•˜κΈ°

@keyframes animation-name {
	from {
		/* μ• λ‹ˆλ©”μ΄μ…˜ μ‹œμž‘ν•  λ•Œμ˜ μƒνƒœ */
	}
	to {
		/* μ• λ‹ˆλ©”μ΄μ…˜ λ™μž‘ ν›„μ˜ μƒνƒœ */
	}
}

@keyframes animation-name {
	0% {
	}
	50% {
	}
	100% {
	}
}

βœ”οΈΒ %

  • 총 duration κΈ°μ€€
    • 0%: μ‹œμž‘ ν”„λ ˆμž„ 속성 κ°’ 지정
    • n%: n% μ§„ν–‰λœ ν”„λ ˆμž„ 속성 κ°’ 지정
    • 100%: 끝 ν”„λ ˆμž„ 속성 κ°’ 지정

βœ”οΈΒ from ~ to

  • from: μ‹œμž‘ ν”„λ ˆμž„ 속성 κ°’ 지정
  • to: 끝 ν”„λ ˆμž„ 속성 κ°’ 지정

❗️ Animation μ‚¬μš©ν•˜κΈ°

.class {
	animation-name: duration timing-function delay iteration-count direction fill-mode play-state;
}

❗️ Animation Properties

βœ”οΈΒ animation

  • λ‹€λ₯Έ animation 속성을 μ΄μš©ν•œ μŠ€νƒ€μΌμ„ ν•œ 쀄에 μ„€μ •ν•  수 있음

βœ”οΈΒ animation-name

  • μ μš©ν• ( @keyframe으둜 μ •μ˜λœ ) 이름

βœ”οΈΒ animation-duration

  • ν•œ 사이클 지속 μ‹œκ°„

βœ”οΈΒ animation-timing-function

  • 각 μ‚¬μ΄ν΄μ˜ 타이밍 ν•¨μˆ˜
  • transition κ³Ό 동일

βœ”οΈΒ animation-delay

  • μ‹œμž‘ μ „ 지연 μ‹œκ°„

βœ”οΈΒ animation-iteration-count

  • μž¬μƒ 횟수
    • infinite: λ¬΄ν•œ 반볡
    • 숫자 κΈ°μž…( μ†Œμˆ˜λ„ κ°€λŠ₯ )

βœ”οΈΒ animation-direction

  • μ•žμœΌλ‘œ, λ’€λ‘œ λ˜λŠ” μ•žλ’€λ‘œ λ²ˆκ°ˆμ•„ 같은 μž¬μƒλ˜λŠ” λ°©ν–₯
    • normal: from β†’ to
    • alternate: from β†’ to β†’ from
    • reverse: to β†’ from
    • alternate-reverse: to β†’ from β†’ to

βœ”οΈΒ animation-fill-mode

  • μ‹€ν–‰ μ „κ³Ό ν›„μ˜ μŠ€νƒ€μΌ 적용 방법
    • none: default
    • forwards: μ• λ‹ˆλ©”μ΄μ…˜ ν›„ λ§ˆμ§€λ§‰ μŠ€νƒ€μΌ μœ μ§€
    • backwards: μ• λ‹ˆλ©”μ΄μ…˜ μ „ 첫번째 μŠ€νƒ€μΌ μœ μ§€
    • both: forwards + backwards

βœ”οΈΒ animation-play-state: μž¬μƒ / μΌμ‹œ 정지 μ—¬λΆ€


❗️ transition vs animation

  • transition
    • 초기 μƒνƒœμ—μ„œ μ΅œμ’… μƒνƒœλ‘œλ§Œ μ •μ˜ κ°€λŠ₯
    • 쀑간 μƒνƒœ μ œμ–΄ λΆˆκ°€λŠ₯
    • 속성값이 λ³€κ²½λ˜μ—ˆμ„ κ²½μš°μ—λ§Œ μ‹€ν–‰
  • animation
    • @keyframesλ₯Ό μ‚¬μš©ν•˜μ—¬ 쀑간 단계 κ΅¬ν˜„ κ°€λŠ₯( % μ‚¬μš© )
    • λ‹€μ–‘ν•œ 속성을 ν™œμš©ν•˜μ—¬ transition 보닀 λ³΅μž‘ν•œ μ• λ‹ˆλ©”μ΄μ…˜ κ΅¬ν˜„ κ°€λŠ₯

0개의 λŒ“κΈ€