[miniProjects] 32_Good, Cheap, Fast Checkboxes

보리·2023λ…„ 6μ›” 21일
0

miniProjects

λͺ©λ‘ 보기
32/47

32_Good, Cheap, Fast Checkboxes

πŸ’»μ£Όμ œ : μ²΄ν¬λ°•μŠ€ μ• λ‹ˆλ©”μ΄μ…˜

  • μ„Έ 개의 μ²΄ν¬λ°•μŠ€κ°€ λ™μ‹œμ— 체크될 μˆ˜λŠ” μ—†μŒ.

✨JS

toggles.forEach(toggle => toggle.addEventListener('change', (e) => doTheTrick(e.target)))

function doTheTrick(theClickedOne) {
  if(good.checked && cheap.checked && fast.checked) {
    if(good === theClickedOne) {
      fast.checked =false
    }
    if(cheap === theClickedOne) {
      good.checked =false
    }
    if(fast === theClickedOne) {
      cheap.checked =false
    }
  }
}
  • toggles.forEach(toggle => toggle.addEventListener('change', (e) => doTheTrick(e.target)))
    toggles 배열에 ν¬ν•¨λœ 각각의 ν† κΈ€ μš”μ†Œμ— λŒ€ν•΄ 'change' 이벀트 λ¦¬μŠ€λ„ˆλ₯Ό λ“±λ‘ν•œλ‹€.
    μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λ©΄ doTheTrick ν•¨μˆ˜κ°€ ν˜ΈμΆœλœλ‹€.
    이벀트 λ¦¬μŠ€λ„ˆμ˜ e.target은 이벀트λ₯Ό λ°œμƒμ‹œν‚¨ μš”μ†Œ 자체λ₯Ό 가리킨닀.

  • doTheTrick ν•¨μˆ˜
    theClickedOne λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 μ–΄λ–€ ν† κΈ€ μš”μ†Œκ°€ ν΄λ¦­λ˜μ—ˆλŠ”μ§€λ₯Ό ν™•μΈν•˜κ³ , 이에 따라 λ‹€λ₯Έ ν† κΈ€ μš”μ†Œλ“€μ„ μ‘°μž‘ν•˜λŠ” 역할을 μˆ˜ν–‰ν•œλ‹€.
    good, cheap, fastλΌλŠ” ν† κΈ€ μš”μ†Œλ“€μ΄ λͺ¨λ‘ μ„ νƒλ˜μ—ˆλŠ”μ§€λ₯Ό 확인 ν›„, theClickedOneκ³Ό 각각의 ν† κΈ€ μš”μ†Œλ₯Ό λΉ„κ΅ν•˜μ—¬ μ–΄λ–€ ν† κΈ€ μš”μ†Œκ°€ ν΄λ¦­λ˜μ—ˆλŠ”μ§€λ₯Ό νŒλ³„ν•œλ‹€.

-> good ν† κΈ€ μš”μ†Œκ°€ ν΄λ¦­λ˜μ—ˆλ‹€λ©΄, fast ν† κΈ€ μš”μ†Œλ₯Ό 선택 ν•΄μ œν•œλ‹€.
-> cheap ν† κΈ€ μš”μ†Œκ°€ ν΄λ¦­λ˜μ—ˆλ‹€λ©΄, good ν† κΈ€ μš”μ†Œλ₯Ό 선택 ν•΄μ œν•œλ‹€.
-> fast ν† κΈ€ μš”μ†Œκ°€ ν΄λ¦­λ˜μ—ˆλ‹€λ©΄, cheap ν† κΈ€ μš”μ†Œλ₯Ό 선택 ν•΄μ œν•œλ‹€.

πŸ‘πŸ»μ‚¬μš©μžκ°€ good, cheap, fast μ€‘μ—μ„œ μ„Έ 개λ₯Ό λ™μ‹œμ— 선택할 수 없도둝 μ œν•œν•˜λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κ³  μžˆλ‹€.

❓❗μ—₯ css

❓visibility

.toggle {
  visibility: hidden;
}
  • visibility 속성은 μš”μ†Œμ˜ κ°€μ‹œμ„±μ„ μ œμ–΄ν•˜λŠ” 데 μ‚¬μš©λœλ‹€.
  • 기본값은 visible이며, μš”μ†Œλ₯Ό 보이게 ν•œλ‹€.
  • hidden 값을 μ„€μ •ν•˜λ©΄ μš”μ†ŒλŠ” μˆ¨κ²¨μ§„λ‹€. μ΄λ•Œ, μˆ¨κ²¨μ§„ μš”μ†ŒλŠ” λ ˆμ΄μ•„μ›ƒμ—μ„œ 곡간을 μ°¨μ§€ν•˜μ§€λ§Œ 보이지 μ•ŠλŠ”λ‹€.

❓scale

@keyframes slideOn {
  /* xμΆ• μ’Œν‘œ μ΄λ™μœΌλ‘œ μ• λ‹ˆλ©”μ΄μ…˜ μ„€μ • */
  0% {
    transform: translateX(0) scale(1);
  }
  50% {
    transform: translateX(20px) scale(1.2);
  }
  100% {
    transform: translateX(40px) scale(1);
  }
} 
  • scale은 CSS의 λ³€ν˜•(transform) 속성 쀑 ν•˜λ‚˜λ‘œ, μš”μ†Œμ˜ 크기λ₯Ό μ‘°μ ˆν•˜λŠ” 데 μ‚¬μš©λœλ‹€.
  • scale ν•¨μˆ˜λŠ” μš”μ†Œμ˜ κ°€λ‘œμ™€ μ„Έλ‘œ 크기λ₯Ό λ™μ‹œμ— μ‘°μ ˆν•œλ‹€.
  • 기본값은 scale(1)이며, μš”μ†Œμ˜ 크기λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • scale ν•¨μˆ˜μ˜ 인수둜 μ£Όμ–΄μ§€λŠ” 값은 배율(factor)둜, 1보닀 큰 값은 μš”μ†Œλ₯Ό ν™•λŒ€ν•˜κ³ , 1보닀 μž‘μ€ 값은 μš”μ†Œλ₯Ό μΆ•μ†Œν•œλ‹€.

πŸ‘πŸ»μ˜ˆλ₯Ό λ“€μ–΄, scale(1.2)λŠ” μš”μ†Œμ˜ κ°€λ‘œμ™€ μ„Έλ‘œ 크기λ₯Ό 1.2배둜 ν™•λŒ€ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. λ§ˆμ°¬κ°€μ§€λ‘œ, scale(0.8)은 μš”μ†Œμ˜ κ°€λ‘œμ™€ μ„Έλ‘œ 크기λ₯Ό 0.8배둜 μΆ•μ†Œν•œλ‹€.

profile
μ •μ‹ μ°¨λ € 이 κ°λ°•ν•œ μ„Έμƒμ†μ—μ„œ

0개의 λŒ“κΈ€