๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ–ฅ dev-ruby

[Vue] #11 - UI ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณธ๋ฌธ

Vue

[Vue] #11 - UI ์• ๋‹ˆ๋ฉ”์ด์…˜

ruby_s 2021. 8. 6. 11:19
728x90
๋ฐ˜์‘ํ˜•
SMALL

1. :class=""

CSS๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜์ฃผ๊ธฐ - ๋ชจ๋‹ฌ์ฐฝ์ด ์„œ์„œํžˆ ์—ด๋ฆฌ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜

<div class="start" :class="{ end : ๋ชจ๋‹ฌ์ฐฝ์—ด๋ ธ๋‹ˆ }"> <style> .start{ opacity: 0; transition: all 1s; } .end{ opacity: 1; } </style>

'๋ชจ๋‹ฌ์ฐฝ์—ด๋ ธ๋‹ˆ'๊ฐ€ true๊ฐ€ ๋  ๋•Œ๋งŒ endํด๋ž˜์Šค๊ฐ€ ์ ์šฉ์ด ๋œ๋‹ค๋Š” ๋œป

transition: all 1s ๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“ ์š”์†Œ์˜ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ ๋•Œ 1์ดˆ๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋œป

2. - Vue์ œ๊ณต ํƒœ๊ทธ ์‚ฌ์šฉ

<transition> ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฃผ๊ณ ์‹ถ์€ ์š”์†Œ๋ฅผ ๊ฐ์‹ผ๋‹ค </transition>

3. ์ฐฝ ์—ด๋ฆด ๋•Œ

enter-from, enter-active, enter-to : < transition > ์— class ์ž‘์„ฑ

  1. name์ง€์ •
<transition name="fade">
  1. css์— 3๊ฐœ์˜ ํด๋ž˜์Šค ์„ ์–ธ
.fade-enter-from{ opacity: 0; // ์‹œ์ž‘ ์‹œ ์Šคํƒ€์ผ } .fade-enter-active{ transition: all 1s; // ๋™์ž‘ํ•  ์• ๋‹ˆ๋ฉ”์ด์…˜ } .fade-enter-to{ opacity: 1; // ๋๋‚  ์‹œ ์Šคํƒ€์ผ }

4. ์ฐฝ ๋‹ซํž ๋•Œ

leave-from, leave-active, leave-to

  • .fade-leave-from{ opacity: 1; // ์‚ฌ๋ผ์ง€๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ } .fade-leave-active{ transition: all 1s; } .fade-leave-to{ opacity: 0; // ์‚ฌ๋ผ์ง€๊ธฐ ๋๋‚  ๋•Œ }
  • .fade-enter-from{ /* opacity: 0; */ transform: translateY(-1000px); // ์œ„์—์„œ ๋ถ€ํ„ฐ 1000ํ”ฝ์…€ ๋‚ด๋ ค์˜ด } /* */ .fade-enter-active{ transition: all 1s; } /* ๋๋‚  ์‹œ ์Šคํƒ€์ผ */ .fade-enter-to{ /* opacity: 1; */ transform: translateY(0px); // ์›๋ž˜ ์ž๋ฆฌ๋กœ ๋Œ์•„์˜ด }
728x90
๋ฐ˜์‘ํ˜•
LIST