λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ›Ή(IT) 정보/css

CSS3 Transition νŠΈλžœμ§€μ…˜ λ³€ν˜•μ˜ μ‹œμž‘

by λ‹ˆλͺ¨λ„€ 2017. 8. 8.
λ°˜μ‘ν˜•

css3 νŠΈλžœμ§€μ…˜μ†μ„±μ΄ μžˆκΈ°μ „μ—λŠ” μ›ΉνŽ˜μ΄μ§€ μ•ˆμ—μ„œμ˜ 동적인 뢀뢄은 adobe flashκ°€ λ‹΄λ‹Ήν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ΅¬κΈ€ν¬λ‘¬μ΄λ‚˜ μ• ν”Œμ‚¬μ—μ„œ ν”Œλž˜μ‰¬λ₯Ό 지ν–₯ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. 이유인 μ¦‰μŠ¨ λ³΄μ•ˆκ΄€λ ¨λ¬Έμ œλ„ μžˆμœΌλ©΄μ„œ μ›Ήν‘œμ€€μ— μ–΄κΈ‹λ‚˜κ³  λͺ¨λ°”일에 μ΅œμ ν™” λ˜μ§€ λͺ»ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 사싀 ν”Œλž˜μ‰¬λŠ” 동적인 μš”μ†Œμ— λΆˆκ³Όν–ˆμ§€ 각쒅 λ©”λ‰΄λ‚˜ μ‚¬μ΄νŠΈμ— μ‚¬μš©ν•˜λŠ”κ±΄ μ ν•©ν•˜μ§€ λͺ»ν–ˆλ˜κ±΄ μ‚¬μ‹€μž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ 동적인 μš”μ†Œλ₯Ό 단지 이 νŠΈλžœμ§€μ…˜μ΄λ‚˜ μ• λ‹ˆλ©”μ΄μ…˜ CSS만으둜 컀버가 λλ‹€λŠ” μ‚¬μ‹€μž…λ‹ˆλ‹€. μ‹œλŒ€μ˜ 흐름인 만큼 λ”μš± κ°„μ†Œν™”λ˜κ³  λ”μš± 쉽고 μ •κ΅ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.

μš°μ„ μ€ νŠΈλžœμ§€μ…˜μ—κ΄€ν•΄ λ¨Όμ € ν¬μŠ€νŒ…ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

νŠΈλžœμ§€μ…˜μ€ μ§€μ •ν•œ μ†μ„±μ—μ„œ λ˜λ‹€λ₯Έ 지정값(μ‹œκ°„) λ™μ•ˆ λΆ€λ“œλŸ½κ²Œ 변경이 κ°€λŠ₯ν•©λ‹ˆλ‹€. μ™œ 예λ₯Ό λ“€μ–΄ λ²„νŠΌκ°’μ΄ κΈ°λ³Έ λΈ”λž™μ΄κ³  마우슀 μ˜€λ²„ν–ˆμ„μ‹œμ— 그레이둜 λ°”λ€ŒλŠ”λ° 이것이 λ‹¨μˆœνžˆ a:hover {background-color} λ₯Ό λ³€κ²½ν•˜λŠ”κ²ƒμ΄ μ•„λ‹ˆλΌ λΈ”λž™μ—μ„œ 그레이둜 천천히 μžμ—°μŠ€λŸ½κ²Œ 색이 λ³€κ²½λ˜λŠ”κ²ƒμ΄ νŠΈλžœμ§€μ…˜μž…λ‹ˆλ‹€.


μ˜ˆμ œμž…λ‹ˆλ‹€.

Transition


.tra {transition: background 1s; background:black; padding:10px; color:#fff}
.tra:hover {background:gray}

<div class="tra">Transition</div>

μœ„μ˜ μ†ŒμŠ€μ—μ„œ transition: λ°±κ·ΈλΌμš΄λ“œ 1초 라고 λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ μ•‘μ…˜μ΄ 취해지면 1μ΄ˆλ™μ•ˆ λ‹€λ₯Έ μ•‘μ…˜μ— 맞좰 λ³€κ²½ν•˜μ—¬λΌ 그런 λœ»μž…λ‹ˆλ‹€.

더 μž‘μ€ 0.1λΆ€ν„° λ¬΄μ œν•œ 초둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

transition 뒀에 μ‚¬μš©ν•˜λŠ” cssλŠ” 정해진건 μ—†μŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•˜κΈ° λ‚˜λ¦„μž…λ‹ˆλ‹€. 예λ₯Όλ“€μ–΄ width, height, top, left, right, bottom, margin, padding, color, 거의 λͺ¨λ“  cssλ₯Ό μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•˜λ‚˜λ§Œ λ˜λŠ”κ²ƒλ„ μ•„λ‹™λ‹ˆλ‹€. μ—¬λŸ¬κ°€μ§€ 속성을 λ™μ‹œμ—λ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.



μ˜ˆμ œμž…λ‹ˆλ‹€.

Transition


.tra1 {transition: background 1s, height 1s; background:black; padding:10px; color:#fff; height:30px}
.tra1:hover {background:gray; height:100px}

<div class="tra">Transition</div>


μ•„μ£Ό μžμ—°μŠ€λŸ½κ²Œ λ³€ν™”ν•˜λŠ”κ²ƒμ΄ λ³΄μž…λ‹ˆλ‹€.


Transition의 μΆ”κ°€ 속성

transition-delay - 이 속성은 λ³€ν˜•μ„ ν•˜κΈ°μ „ λ”œλ ˆμ΄(지연)을 μ΄ˆλ‹¨μœ„λ‘œ μ§€μ •ν•΄μ€λ‹ˆλ‹€.

Transition

transition-delay: 2s;λ₯Ό μ μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 2μ΄ˆλ’€μ— μ»¬λŸ¬κ°€ 그레이둜 λ°”λ€ŒλŠ”κ²ƒμ„ 확인 ν•  μˆ˜μžˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘  λŒμ•„μ˜€λŠ” 타이밍도 λ˜‘κ°™μ΄ 2μ΄ˆλ’€μ— μ μš©λ©λ‹ˆλ‹€. μ—¬κΈ°μ„œ νŒμ€ μ˜€λ²„ν–ˆμ„λ•ŒλŠ” λ”œλ ˆμ΄λ₯Ό 2초λ₯Ό μ μš©ν•˜κ³  μ‹Άκ³  λ‹€μ‹œ 마우슀 아웃이 λμ„λ•ŒλŠ” λ°”λ‘œμ μš©λ˜κ²Œ ν•˜λ €λ©΄ λ‹€μŒκ³Όκ°™μŠ΅λ‹ˆλ‹€.

Transition
.tra_delay1 {transition: background 1s; background:black; padding:10px; color:#fff; transition-delay: 0s;}
.tra_delay1:hover {background:gray; transition-delay: 2s;}

원 μ†ŒμŠ€μ— μ›ν•˜λŠ” μ‹œκ°„μ„ μ£Όκ³  μ˜€λ²„ν–ˆμ„λ•Œλ₯Ό 더 길게 μ‹œκ°„μ„ μ£Όλ©΄ μœ„μ™€κ°™μ΄ λ³€ν˜•μ΄ λ©λ‹ˆλ‹€.

두가지 차이 잘 λ³΄μ‹œκ³  직접 ν…ŒμŠ€νŠΈ ν•΄λ³΄μ‹œκΈΈ λ°”λžλ‹ˆλ‹€.


transition-timing-funtion - λ³€ν˜•μ˜ μ†λ„μ˜ 곑선을 μ§€μ •ν•΄μ€λ‹ˆλ‹€.

κ·Έ κ³‘μ„ μ§€μ •μ—λŠ” λ‹€μŒκ³Ό 같이 μ—¬λŸ¬ ν˜•νƒœκ°€ μžˆμŠ΅λ‹ˆλ‹€.

ease - 천천히 μ‹œμž‘ν›„ λ³€ν™˜νš¨κ³Όλ₯Ό μ§€μ •ν•˜κ³  λΉ λ₯΄λ‹€κ°€ 느리게 λλ‚©λ‹ˆλ‹€. 기본으둜 μ„€μ •λ©λ‹ˆλ‹€.

ease-in - λŠλ¦°μ‹œμž‘μœΌλ‘œ λ³€ν™˜νš¨κ³Όλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

ease-out - 느린끝으둜 λ³€ν™˜νš¨κ³Όλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

ease-in-out λŠλ¦°μ‹œμž‘κ³Ό 끝으둜 λ³€ν™˜νš¨κ³Όλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

linear -μ‹œμž‘λΆ€ν„° λκΉŒμ§€ λ™μΌν•œ μ†λ„λ‘œ λ³€ν™˜νš¨κ³Όλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

ease
ease-in
ease-out
ease-in-out
linear


이와같은 νŠΈλžœμ§€μ…˜μœΌλ‘œ μ›ΉνŽ˜μ΄μ§€μ—μ„œ λ”μš± λ™μ μœΌλ‘œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄μ™€λΉ„μŠ·ν•œ μ• λ‹ˆλ©”μ΄μ…˜ 속성도 μžˆμ§€λ§Œ μ‹€μ§ˆμ μœΌλ‘  νŠΈλžœμ§€μ…˜ 속성이 더 많이 쓰이고 μžˆμŠ΅λ‹ˆλ‹€. λ”±λ”±ν–ˆλ˜ λ‚˜μ˜ μ‚¬μ΄νŠΈμ— μ‘°κΈˆλ” λΆ€λ“œλŸ¬μš΄ μ†μ„±μ˜ νŠΈλžœμ§€μ…˜ μ‚¬μš©μ€ λ‚˜μ˜ ν’ˆκ²©μ„ λ”μš± λ†’μ—¬μ£ΌλŠ” 계기가 될 κ²ƒμž…λ‹ˆλ‹€.

λ°˜μ‘ν˜•

λŒ“κΈ€