kokoa clone-4

kokoa clone-4


chat, Splash, Navi-Ani Part


6.33

Chat Screen - reply bar

  • column ๋‚ด์— โ€œinput ์ฐฝโ€ + โ€œ์ด๋ชจํ‹ฐ, ํ”Œ๋Ÿฌ์Šค ์ฐฝโ€์ด ๋“ค์–ด๊ฐ”์„ ๋•Œ, ๋ฐ•์Šค์˜ ํฌ๊ธฐ๋ฅผ ํ™”๋ฉด์— ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ „์ฒด์ ์ธ column์˜ width๊ฐ’์„ ํŒŒ์•…ํ•ด์„œ ๋ถ„ํ• ์„ ํ•œ ๋’ค์— ์•ˆ์ชฝ column์„ ๋ถ„ํ• ํ•œ๋‹ค.

  • position : relative์™€ absolute ์ด์šฉํ•ด์„œ ๋ฐ•์Šค ์•ˆ์— ๋ฐ•์Šค๋ฅผ ์œ„์น˜์‹œํ‚ฌ ๋•Œ, ์กฐ์ •ํ•˜๊ธฐ

6.34 ~ 6.35

Splash Screen

  • ์›น์„ ์‹คํ–‰ํ—€์„ ๋•Œ ๋ณด์ด๋Š” ๊ฐ€์žฅ ์ฒซ ํ™”๋ฉด์ด๋‹ค.
  • splash ํ™”๋ฉด์„ ๋‹ค ๋งŒ๋“  ํ›„์— animation์„ ์ด์šฉํ•˜๋ฉด, Keyframe์˜ ํŠน์„ฑ์ƒ ๋‹ค์‹œ ๋Œ์•„์˜ค๊ฒŒ ๋œ๋‹ค. ( from ~ to ~ ) forwards ๋ผ๋Š” ํŠน์„ฑ์„ animation ๋’ค์— ๋ถ™์ด๋ฉด ๋‹ค์‹œ ๋Œ์•„์˜ค์ง„ ์•Š๋Š”๋‹ค.
    style{
      animation: hideSplashScreen 1s ease-in-out forwards;
    }
    
  • ๋ฌธ์ œ๋Š” ๋งˆ์ง€๋ง‰ key frame์„ ์–ตํ•ด์„œ html ์ƒ์—๋Š” element๊ฐ€ ์•„์ง ๋‚จ์•„์žˆ๋‹ค.
    • visibility : hidden ์ด๋ฅผ ์“ฐ๋ฉด ํด๋ฆญ์€ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ˆˆ์—๋งŒ ๋ณด์ด์ง€ ์•Š์„ ๋ฟ ์‚ฌ๋ผ์ง€์ง„ ์•Š๋Š”๋‹ค. ๋‹ต์€? JavaScript๋ฅผ ์“ด๋‹ค.! animation-delay : animation์„ ์ž ๊น ๋ฉˆ์ถ”๊ฒŒ ํ•œ๋‹ค.

6.36 ~ 6.37

Navigation Bar - Animation

  • ๋™์ „ ๊ตด๋ฆฌ๊ธฐ
  • ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์•„๋ž˜์—์„œ ์˜ฌ๋ผ์˜ค๊ฒŒ ๋งŒ๋“ค๊ธฐ
  • ํ†ฑ๋‹ˆ๋ฐ”ํ€ด ๊ตด๋ฆฌ๊ธฐ
  • ํ•˜ํŠธ ๋›ฐ๊ฒŒ ํ•˜๊ธฐ -> ํ”๋“ค๋ฆด๋•Œ..?
    will-change: transform;
    

6.38

Chat screen

  • Fade-In ๊ธฐ๋ฒ• ์‚ฌ์šฉํ•˜๊ธฐ.

     @keyframes fadeIn {
       from {
         transform: translateY(30px);
         opacity: 0;
       }
       to {
         transform: none;
         opacity: 1;
       }
     }
    
  • chat ๋‚ด์— reply๋ฐ”์—์„œ Input์— focus๊ฐ€ ๋์„ ๋•Œ, focus-within : ์›ํ•˜๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์— focus๋ฅผ ๋ฐ›์€ ํ›„์— ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ๋™์ž‘์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ
    .reply:focus-within .reply__column:first-child {
      opacity: 0;
    } 
    
  • ๋ฌธ์ œ : ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ–ˆ๋Š”๋ฐ ์™œ ์ด button ์ด ์ž๊พธ ๋ฐ‘์—์„œ ๋ฉˆ์นซ ๊ฑฐ๋ฆฌ๋‹ค๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ํ˜„์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด ํ˜„์ƒ์„ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด, ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ดค์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ๋ชป ์ฐพ์•˜๋‹ค.
    ํ•ด๊ฒฐ : width ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ, ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ  position์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ดค๋‹ค. (ํ•œ 30๋ถ„์€ ์ณ๋‹ค๋ณธ๋“ฏ.. ) absolute position์„ ์ •ํ•ด์ฃผ๋ฉด relative position์— ๋Œ€ํ•ด ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ฃผ์ž. top:0px right:0px

++ chat ํ™”๋ฉด ๋‚ด์— ์ฑ„ํŒ…์›๋“ค, ์ฑ„ํŒ…๋ฐ” fade In ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ฌ

tip

animation: hideSplashScreen 1s ease-in-out forwards;

will-change : transform;

animation-delay : animation์„ ์ž ๊น ๋ฉˆ์ถค.

focus-within : ํด๋ž˜์Šค ๋‚ด๋ถ€์— focus๋ฅผ ๋ฐ›์€ ํ›„์— ๋‹ค๋ฅธ ํด๋ž˜์Šค ๋™์ž‘

ํƒœ๊ทธ: , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: