๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

๋ชจ๋ฐ”์ผ์—์„œ ํ˜ธ๋ฒ„ ์ด์Šˆ ๋ฐœ์ƒ

 

๋ฌธ์ œ: ๋ชจ๋ฐ”์ผ์—์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ˜ธ๋ฒ„๊ฐ€ ๊ณ„์† ์ ์šฉ๋˜์–ด, ๋‹ค๋ฅธ ๋ฒ„ํŠผ๊นŒ์ง€๋„ ๋ˆŒ๋ฆผ ํšจ๊ณผ๊ฐ€ ์œ ์ง€๋œ๋‹ค.

 

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. ๊ฐ๊ฐ์˜ ์‚ฌ์šฉ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•˜์—ฌ css ์ฝ”๋“œ ์ž‘์„ฑ

2. ํ„ฐ์น˜ ๊ด€๋ จ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ, css ํšจ๊ณผ๊ฐ€ ์—†์–ด์ง€๋„๋ก js ์ฝ”๋“œ ์ž‘์„ฑ

 

 

 

1. CSS๋กœ PC์™€ Mobile์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ฝ”๋“œ

 

/* smartphones, touchscreens */
@media (hover: none) and (pointer: coarse) {
    ...
}
/* stylus-based screens */
@media (hover: none) and (pointer: fine) {
    ...
}
/* Nintendo Wii controller, Microsoft Kinect */
@media (hover: hover) and (pointer: coarse) {
    ...
}
/* mouse, touch pad */
@media (hover: hover) and (pointer: fine) {
    ...
}

 

/* ์Šค๋งˆํŠธํฐ, ํƒœ๋ธ”๋ฆฟ ๋“ฑ ํ„ฐ์น˜์Šคํฌ๋ฆฐ ๊ธฐ๊ธฐ์—์„œ active ์ƒํƒœ๋ฅผ ์ฒ˜๋ฆฌ
   ํ„ฐ์น˜์Šคํฌ๋ฆฐ์€ ๋น ๋ฅธ ๋ฐ˜์‘์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ๊ฐ„์„ ์งง๊ฒŒ(200ms) ์„ค์ • */
@media (hover: none) and (pointer: coarse) {
  .btn-fade:active {
    background: #ff7d4d; /* ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์˜ค๋ Œ์ง€๋กœ ๋ณ€๊ฒฝ */
    transition: 200ms ease-in; /* 200ms ๋™์•ˆ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ƒ‰์ƒ์ด ๋ณ€ํ™” */
  }
}

/* ๋ฐ์Šคํฌํƒ‘์ด๋‚˜ ํ„ฐ์น˜ํŒจ๋“œ์—์„œ hover ์ƒํƒœ๋ฅผ ์ฒ˜๋ฆฌ
   ๋งˆ์šฐ์Šค ์‚ฌ์šฉ์ž๋Š” ๋” ์—ฌ์œ ๋กœ์šด ์ƒํ˜ธ์ž‘์šฉ์„ ๊ธฐ๋Œ€ํ•˜๋ฏ€๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ๊ฐ„์„ ์กฐ๊ธˆ ๋” ๊ธธ๊ฒŒ(300ms) ์„ค์ • */
@media (hover: hover) and (pointer: fine) {
  .btn-fade:hover {
    background: #ff7d4d; /* ๋งˆ์šฐ์Šค ์˜ค๋ฒ„ ์‹œ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์˜ค๋ Œ์ง€๋กœ ๋ณ€๊ฒฝ */
    transition: 300ms ease-in; /* 300ms ๋™์•ˆ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ƒ‰์ƒ์ด ๋ณ€ํ™” */
  }
}

 

  • hover: ๋งˆ์šฐ์Šค ์˜ค๋ฒ„ =  ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ํ„ฐ์น˜ ํ›„์— ๋‹ค๋ฅธ์˜์—ญ ํ„ฐ์น˜ ์‹œ ๊นŒ์ง€ ์œ ์ง€๋œ๋‹ค.
  • active: ๋งˆ์šฐ์Šค ํด๋ฆญ = ๋ˆ„๋ฅด๊ณ ์žˆ๋Š” ๋™์•ˆ์—๋งŒ ์œ ์ง€ = ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ํ„ฐ์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋™์•ˆ์—๋งŒ ์œ ์ง€๋œ๋‹ค.

 

2. JS์—์„œ ์ด๋ฒคํŠธ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ

 

function startup() {
  var el = document.getElementById("canvas");
  el.addEventListener("touchstart", handleStart, false);
  el.addEventListener("touchend", handleEnd, false);
  el.addEventListener("touchcancel", handleCancel, false);
  el.addEventListener("touchmove", handleMove, false);
}

// handler์—๋Š” css ์†์„ฑ์„ ์ œ๊ฑฐํ•˜๋Š” dom ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ

 

 

 

ํผ๋ธ”๋ฆฌ์‹ฑ ๊ฒฝํ—˜์„ ํ†ตํ•ด ๋А๋‚€์ 

 

1. ๋ถ„์•ผ๊ฐ€ ์ƒˆ๋กญ๋‹ค: ์ƒ๋Œ€์ ์œผ๋กœ ๋…ผ๋ฆฌ๋ฅผ ๋œ ์‚ฌ์šฉํ•  ๋ฟ์ด์ง€, ๊ฒฐ์ฝ” "์‰ฌ์šด"๋ถ„์•ผ๋Š” ์•„๋‹ˆ๋‹ค.
2. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ๋‹ค์ฐจ์›์ด๋‹ค: ๋ชจ๋ฐ”์ผ, PC, ๋ธŒ๋ผ์šฐ์ € ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐœ๋ฐœํ•ด์•ผํ•œ๋‹ค. 

๋ฐ˜์‘ํ˜•