ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JavaScript/VanillaJS] ๋งˆ์šฐ์Šค ํœ  ์ด๋ฒคํŠธ (a.k.a window.onmousewheel)
    javascript 2019. 4. 9. 15:56

    ํฌ์ŠคํŒ…์— ์•ž์„œ ๋งํฌ ํ•˜๋‚˜๋ฅผ ์ ๊ณ  ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    https://sellery.me

     

    Sellery

     

    sellery.me

     

    ์ง์žฅ์ธ์ด ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๋ฒ•ํ•œ ์›น ์•ฑ์ž…๋‹ˆ๋‹ค.

    ์ด ์›น ์•ฑ์„ ๋ณด๋ฉฐ ์ €๋„ ์กด๋ฒ„๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์–ธ์ œ์ฏค ํ‡ด์‚ฌ๋ฅผ.. ์›์›..!)

     

    ๋ณด๋‹ค๋ณด๋‹ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—†์ด Vanilla JS๋กœ๋งŒ ํด๋ก ์ฝ”๋”ฉ์„ ํ•ด๋ณด๊ณ  ์‹ถ์€ ๋งˆ์Œ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. (๋น„์ „๊ณต๊ฐœ์ชผ๋ ™์‹ ์ž…๊ฐœ๋ฐœ์žํ–‡๋ณ‘์•„๋ฆฌ๋ผ์„œ ์„ฑ์žฅํ•ด์•ผํ•œ๋‹ค..!)

     

    ํด๋ก ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•ด๋ณด์ž ๋งˆ์Œ๋จน๊ณ  ์‹ค์ฒœ์— ์˜ฎ๊ธฐ์ž๋งˆ์ž ๋‚œ๊ด€์— ๋ถ€๋”ชํ˜”๋Š”๋ฐ

    ํœ ๋งŒ์œผ๋กœ ํŽ˜์ด์ง€ ์ „ํ™˜์ด ๋˜๊ธธ๋ž˜ ์‹ ๊ธฐํ•ด์„œ ์ข€ ๋œฏ์–ด๋ดค๋Š”๋ฐ ํŽ˜์ด์ง€ ์ „ํ™˜์ด ์•„๋‹ˆ๋ผ div ์ด๋™์ด์—ˆ์Šต๋‹ˆ๋‹ค.

    (์ฐจ๋ผ๋ฆฌ ํŽ˜์ด์ง€ ์ „ํ™˜์ธ๊ฒŒ ๋งˆ์Œ์€ ํŽธํ•  ๊ฒƒ ๊ฐ™๋‹คใ… ใ… )

     

    ํ .. ํด๋ก ์ฝ”๋”ฉ์„ ๋๋‚ด๊ณ  ํฌ์ŠคํŒ…์„ ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ!

     

    ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์žŠ์ง€๋ง์ž๋Š” ์˜๋ฏธ๋กœ

    ์–‘๋„ ์ ๊ณ  ์‹œ๋ฅ์ž–๊ณ  ๊ธˆ๋ฐฉ ํ›‘๊ณ  ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํฌ์ŠคํŒ…์„ ํ•˜๊ธด ํ•˜์ง€๋งŒ ๋ถ€์กฑํ•œ ๊ฒƒ์ด ๋Š๊ปด์ง€๋ฉด ๊ฐ€๊ฐ์—†์ด ํด๋ก ์ฝ”๋”ฉ์„ ์ค‘๋‹จํ•˜๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ์ฑ„์šฐ๊ณ  ๋Œ์•„์˜ฌ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

     

     

    sellery-clone์˜ test.js

     

     

    console.dir์— ๋นจ๊ฐ„ ๋„ค๋ชจ๋ฅผ ํ•ด๋‘” ์ด์œ ๋Š” ์ •๋ง log๋งŒํผ ๋‚˜์—๊ฒŒ ๋งŽ์€ ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๋Š” ๊ณ ๋งˆ์šด ๋…€์„์ด๋ผ ๊ฐ•์กฐ ํ‘œ์‹œ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

     

    ์ € ์ธ์ž๋กœ ๋ญ๊ฐ€ ๋“ค์–ด์˜ค๋Š”์ง€ console.log๋กœ ๋ดค๋‹ค๋ฉด ์ด ์ธ์ž๊ฐ€ ๋ฌด์—‡์„ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€๋Š” console.dir๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    (log๋กœ๋„ ์ถฉ๋ถ„ํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค...)

     

    ์‚ฌ์‹ค ์ง€๊ธˆ๋„ ํœ ๋กœ div๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ์™„์„ฑ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค..

    ๊ตฌ๊ธ€๋ง์„ ํ•˜๋ฉด jQuery๋กœ ๋ณต๋ถ™ํ•ด๋„ ๋  ์ •๋„๋กœ ์ž˜ ์„ค๋ช…๋œ ์ž๋ฃŒ๋Š” ๊ณง ์ž˜ ๋ดค๋Š”๋ฐ

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—†์ด ํ•˜๋ ค๋‹ˆ ๋ง‰๋ง‰ํ•˜๋„ค์š”.

     

    ์ผ๋‹จ document์—” onmousewheel์ด ์—†๋‚˜๋ณด๋‹ค vscode์—์„œ ctrl + space๋ฅผ ํ•˜๋ฉด ์•ˆ๋‚˜์˜จ๋‹ค!

    window์—” ๋‚˜์˜จ๋‹ค! ๊ณ ๋ง™๊ฒŒ๋„.

     

    console.dir(event)

    wheel event๋ฅผ console.dir๋กœ ๋ณด๋ฉด onmousewheel์— ๋‹ด๊ธด ์ž์‹๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    jQuery๋กœ div ์ด๋™ํ•˜๋Š” ์ž๋ฃŒ๋“ค์„ ์ฐธ๊ณ ํ•˜๋‹ค๊ฐ€ ๋ณด๋‹ˆ Delta๋ž€ ๋…€์„์„ ์ฐพ์•˜๊ณ 

    ํ™•์ธ์ฐจ if์กฐ๊ฑด๋ฌธ์œผ๋กœ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    if(e.wheelDelta === -120){
      console.log('wheel down');
    } else {
      console.log('wheel up');
    }

    ์ด ์กฐ๊ฑด๋ฌธ์„ ๊ฑธ๊ณ  ๋ธŒ๋ผ์šฐ์ €(ํฌ๋กฌ)์—์„œ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

     

    test result

    ํํ~

    ๋งŒ์กฑ์Šค๋Ÿฝ๋‹ค.

     

    Vanilla JS ๋งŒ์œผ๋กœ wheel event๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ div ์ด๋™ํ•˜๊ธฐ์— ํ•œ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐ”์Šต๋‹ˆ๋‹ค.

     

    jerry๋Š” ์„ฑ์žฅ์ค‘.

    (์šฐ์›ฉ- ๋ฉ˜ํŠธ ์—ญ๊ฒน๋‹ค. ใ…‡ใ„ฑใ„นใ…‡)

    ๋Œ“๊ธ€

Posted by Bejerry.