css

์ปดํ“จํ„ฐ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์ˆœ์„œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•ด๋ณด๊ธฐ

FluanceiFi 2022. 9. 27. 23:57

๐ŸŽ ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ฝ๋Š”๋‹ค

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ 1์ˆœ์œ„๋กœ ์ ์šฉ๋œ๋‹ค. (์ฝ๊ธฐ๋Š” ์œ„์—์„œ ์•„๋ž˜ / ์ ์šฉ์€ ์•„๋ž˜์—์„œ ์œ„)

 

Position fixed๋ฅผ ํ•œ ์ฝ”๋“œ์™€ position:relative๋ฅผ ์ฃผ์ง€ ์•Š๊ณ   absolute๋ฅผ ์ค€ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ ์šฉ ์ˆœ์„œ๋Š” ์•„๋ž˜์—์„œ ์œ„๋กœ ์ ์šฉ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

Absolute๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ํ™”๋ฉด์„ ๋ฎ๋Š” div๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์น˜์ž

๊ทธ๋ ‡๋‹ค๋ฉด div๊ฐ€ ๋งจ ์•„๋ž˜์— ์œ„์น˜ํ•ด์•ผ ๋ชจ๋“  ํ™”๋ฉด์„ ๋ฎ์„ ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋• ํ•ญ์ƒ ์ฝ๋Š” ์ˆœ์„œ๋ฅผ ์ƒ๊ฐํ•˜์—ฌ ์ ์šฉ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ๋œ๋‹ค.

 

 

๐ŸŽ ์ ์šฉํ•˜๊ธฐ!

ํ™”๋ฉด์„ ๊ฐ€๋ ธ๋‹ค๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด์ž!

 

1. ๋จผ์ € ํ™”๋ฉด์„ ๊ฐ€๋ฆฌ๋Š” div์†์„ฑ๊ฐ’์„ ์ฃผ์ž

#splash-screen {
  background-color: var(--yellow);
  position: absolute;
  height: 100vh;
  width: 100vw;
  top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 150px;
}

 

 

 

2. ๊ทธ ๋‹ค์Œ ํ‚คํ”„๋ ˆ์ž„์œผ๋กœ ์ž‘์šฉ์ˆœ์„œ๋ฅผ ๋งŒ๋“ค๊ณ 

@keyframes hideSplashScreen {
  Form {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

๊ผญ form to ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ 0% 50% 100% ์ด๋ ‡๊ฒŒ ๋‚˜๋ˆŒ ์ˆ˜ ๋„ ์žˆ๋‹ค.

 

 

 

3. Animation์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž‘์šฉํ•˜๊ฒŒํ•˜์ž

#splash-screen {  

  background-color: var(--yellow);  

  position: absolute;  

  height: 100vh;  

  width: 100vw;  

  top: 0;  

  display: flex;  

  justify-content: center;  

  align-items: center;  

  font-size: 150px;  

  animation: hideSplashScreen 1s ease-in-out;  

}

 

์ด๋ ‡๊ฒŒํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์ฒ˜์Œ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€ ํ™”๋ฉด์„ ๊ฐ€๋ฆด ๊ฒƒ์ด๋‹ค.

 

 

 

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

์ด๋•Œ forwards๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด final property value(๋งˆ์ง€๋ง‰ ์†์„ฑ ๊ฐ’)์„ ์œ ์ง€ํ•˜๊ฒŒ ํ•˜์—ฌ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋๋‚˜๊ณ  ์œ ์ง€ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ํ™”๋ฉด์ด ๋ณด์ผ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ์—ฌ์ „ํžˆ element(splash-screen)๋Š” ๋‚จ์•„์žˆ์–ด์„œ ํด๋ฆญ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ž˜์„œ ๋ช‡ ๊ฐ€์ง€ ์†์„ฑ(property)์„ ์‹œ๋„ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ

 

๊ทธ ์ค‘ visibility: hidden; ๋Š” ๋งˆ์šฐ์Šค์— ๊ฑธ๋ฆฌ์ง€ ์•Š๊ฒŒ ๋น ์ ธ๋ฒ„๋ฆฌ๊ฒŒ ํ•œ๋‹ค.

์ฐธ๊ณ 

 

ํ•˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด์„œ ๋ณด๋ฉด element๋Š” ์•„์ง ์กด์žฌํ•˜๊ณ  ์žˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” javascript๋ฅผ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

Javascript๋Š” ๋‡Œ์˜ ์—ญํ• ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 

 

๐ŸŽ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

animation-delay: 5s;

 

 

 

๐ŸŽ ์ •๋ฆฌํ•˜๊ธฐ!

1.     ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด forwards

2.     ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์œผ๋ฉด infinite

3.     ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์ž‘ ์ „ ๋ชจ์Šต์„ ์ˆจ๊ธฐ๊ณ ์‹ถ์œผ๋ฉด keyframes์ด ์•„๋‹Œ element์—๊ฒŒ๋„ translate์™€ opacity์—๊ฒŒ ๊ฐ’์„ ์ค˜์•ผํ•œ๋‹ค.

 

 

 

๐ŸŽ translate ๋ณต์Šตํ•˜๊ธฐ

 

translate() - CSS: Cascading Style Sheets | MDN

The translate() CSS function repositions an element in the horizontal and/or vertical directions. Its result is a <transform-function> data type.

developer.mozilla.org