TechScribe Notes

A์‚ฌ ๋ชจ๋ฐ”์ผ ์›น ์ž‘์—… ํ”„๋กœ์ ํŠธ ๋ณธ๋ฌธ

ํ”„๋กœ์ ํŠธ

A์‚ฌ ๋ชจ๋ฐ”์ผ ์›น ์ž‘์—… ํ”„๋กœ์ ํŠธ

yunmee0704 2024. 12. 19. 16:04

๐Ÿœ  ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

1. ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2024.12.12~2024.12.19 (์•ฝ 1์ฃผ๊ฐ„)

2. ๊ธฐ์ˆ ์Šคํƒ 

-ํผ๋ธ”๋ฆฌ์‹ฑ : html, css, jquery

3. ํ˜‘์—… ํˆด : Github, Figma

4.์›น ์œ ํ˜•/ํ•ด์ƒ๋„๊ธฐ์ค€/ ๋””์ž์ธ ๋„ˆ๋น„ : ๋ชจ๋ฐ”์ผ ์›น / 500px/ 350px

 

๐Ÿ“ ํ”„๋กœ์ ํŠธ ์„ค๋ช…

: ์ „์ž์˜์ˆ˜์ฆ ์„œ๋น„์Šค๋กœ, ๊ฐ€๋งน์ ์—์„œ ํ์•Œ์ฝ”๋“œ๋ฅผ ์ฐ์œผ๋ฉด ์ž๋™์ ์œผ๋กœ ์ „์ž์˜์ˆ˜์ฆ์„ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋ฐ”์ผ ์›น์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๋ฉ”์ธ์œผ๋กœ ํ•œ๋‹ค. ๊ธฐ์กด์— ๋ธŒ๋žœ๋“œ๋ณ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ๊ฐ ๋‹ค์šด๋ฐ›์•„์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ ์—†์ด ๊ฐ€๋งน์  ์–ด๋””์—์„œ๋‚˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ˜„์žฌ๋Š” ๋„ค์ด๋ฒ„๋‚˜ ์นด์นด์˜ค ์ „์ž๋ฌธ์„œ๋กœ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํƒ„์†Œ์ค‘๋ฆฝ์‹ค์ฒœํฌ์ธํŠธ ๊ฐ€์ž…ํ•˜์—ฌ ์—ฐ๊ฒฐํ•ด ๋‘๋ฉด ์˜์ˆ˜์ฆ์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค ํฌ์ธํŠธ ์ ๋ฆฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

๐Ÿ˜Ž ์ƒˆ๋กญ๊ฒŒ ๊ฒฝํ—˜ํ•œ ๊ฒƒ  / ์ž˜ํ•œ ๊ฒƒ

1. ์‹ค์ œ ๋ฏธํŒ…์—์„œ  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

: ์ด ํšŒ์‚ฌ์— ์™€์„œ ๊ณ ๊ฐ์‚ฌ์™€ ์ง์ ‘ ๋ฏธํŒ…์„ ํ•ด๋ณธ ๊ฒƒ์€ ์ฒ˜์Œ์ด์—ˆ๋Š”๋ฐ, ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๊ธฐ๋ณธ์ ์ธ ์ •์ฑ…์ด๋‚˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ธฐํšŒ์˜€๋‹ค. ์ดํ•ดํ•œ ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ ํŒ€์›๊ณผ ํ•จ๊ป˜ ์ด์•ผ๊ธฐํ•ด๊ฐ€๋ฉด์„œ ์ž‘์—…ํ•˜์—ฌ ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ˜์˜์— ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ–ˆ๋‹ค.

 

2. ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• 

: ์›น์—์„œ ์ž‘๋™์ด ์œ„์น˜๋‚˜ ๋ ˆ์ด์•„์›ƒ์ด ์ž˜ ๋ฐ˜์˜๋˜๋”๋ผ๋„ ๋ชจ๋ฐ”์ผ ์›น์—์„œ๋Š” ๊ธฐ๋ณธ ํ—ค๋“œ๋‚˜ ํ‘ธํ„ฐ ๋•Œ๋ฌธ์— ๋†’์ด๊ฐ’์ด ์ œ๋Œ€๋กœ ์กฐ์ •์ด ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์‹ค์ œ๋กœ ํ™•์ธํ•˜์—ฌ ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค. 

 

๐Ÿ˜ฐ ์•„์‰ฌ์› ๋˜ ์ 

 

- ๊ธฐํš์„œ๊ฐ€ ์—†์ด ํšŒ์˜ ๋‚ด์šฉ์œผ๋กœ๋งŒ ์ž‘์—…ํ•ด์•ผ ํ–ˆ๋˜ ๊ฒƒ

: ํŽ˜์ด์ง€ ์ˆ˜๊ฐ€ ๋งŽ์ง€ ์•Š์•„์„œ ์•„์ฃผ ํฌ๋ฆฌํ‹ฐ์ปฌํ•œ ๋ถ€๋ถ„์€ ์•„๋‹ˆ์—ˆ์ง€๋งŒ ๊ธฐํš์„œ๊ฐ€ ์ œ๋Œ€๋กœ ๋œ ๋ฌธ์„œ๋กœ ๋˜์–ด ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๊ตฌ๋‘๋กœ ๋“ค์€ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ์ž‘์—…ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์—ฌ์„œ ์˜๊ฒฌ์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ์–ด๋ ค์› ๋‹ค.

 

 

๐Ÿค“ ๋ฐฐ์šด ๊ฒƒ๋“ค

1. ํ† ๊ธ€ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ

ํ† ๊ธ€๋ฒ„ํŠผ์€ ํ”ํžˆ ๋ณด๋Š” ๊ฒƒ์ธ๋ฐ ์ฒ˜์Œ ์ž‘์—…ํ•ด ๋ดค์—ˆ๋‹ค. ์ง์ ‘ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜๋ฉด์„œ ๋งŒ๋“ค์–ด๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ„๋‹จํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

<div class="toggle">
   <label>
      <input role="switch" type="checkbox" />
   </label>
 </div>
//ํ† ๊ธ€๋ฒ„ํŠผ
.toggle {
  label {
    display: inline-flex;
    align-items: center;
    cursor: pointer;

    input[type="checkbox"] {
      display: block;
      appearance: none;
      position: relative;
      border-radius: 37px;
      width: 41px;
      height: 20px;
      background-color: $gray200;
      &:before {
        content: "";
        position: absolute;
        top: 2px;
        left: 3px;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background-color: $white;
        transition: left 250ms linear;
      }

      &:checked {
        background-color: $primary;
        &::before {
          left: 22px;
        }
      }
    }
  }
}

 

2. ๋ชจ๋ฐ”์ผ ์›น์—์„œ์˜ ๋†’์ด๊ฐ’ ์ˆ˜์ •

100vh๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๋ชจ๋ฐ”์ผ ์›น์—์„œ๋Š” ์‹ค์ œ ํ™”๋ฉด ๋†’์ด์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ์•„์ดํฐ์—์„œ๋Š” ์ฃผ์†Œ์ฐฝ์ด๋‚˜ ํˆด๋ฐ”๊ฐ€ ํ™”๋ฉด์—์„œ ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ ๋‚˜ํƒ€๋‚  ๋•Œ ๋†’์ด๊ฐ’์ด ๋ณ€๊ฒฝ ๋˜๊ธฐ๋„ ํ•˜์—ฌ. 100vh๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ์‹ค์ œ ๋ทฐํฌํŠธ ๋†’์ด๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

//๋†’์ด๊ฐ’ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• 
function setFullHeight() {
  const vh = window.innerHeight * 0.01;
  document.documentElement.style.setProperty('--vh', `${vh}px`);
}

window.addEventListener('resize', setFullHeight);
setFullHeight();

 

 

3. ํŒ์—…์ฐฝ ํ™”๋ฉด ๊ฐ€์šด๋ฐ์— ๋„์šฐ๋Š” ์ฝ”๋“œ 

function popupPosition() {
  $('.popup').css({
    "top": (($(window).height() - $('.popup').outerHeight()) / 2 + $(window).scrollTop()) + "px",
    "left": (($('body').width() - $('.popup').outerWidth()) / 2 + $(window).scrollLeft()) + "px",
  });
};