-
[JavaScript/VanillaJS] ๋ง์ฐ์ค ์ค๋ฒ ๋ฐ ํ ์ด๋ฒคํธ (onmouseover, onmousewheel)javascript 2019. 4. 10. 14:29
์ ๋ฒ ํฌ์คํ (https://bejerry.tistory.com/8)์ ์ด์ด์ ๊ณ์ Sellery.me ํด๋ก ์ ํด๋ณด๋ ค๊ณ ๋ ธ๋ ฅ์ค์ ๋๋ค.
(ํ๋ฃจ๊ฐ ์ง๋๊ณ ์ดํ์ด ์ง๋ฌ๋๋ฐ๋ ์ฑ๊ณผ๋ฌผ์ด ์๋ค.
์ฌ์ ํ ํ ์ด๋ฒคํธ๋ก div์ด๋์ ๋ชปํ๊ณ ์๋คใ ใ )
๊ทธ๋๋ ๋๋ฆ ์ง์ ์ด ์์์ต๋๋ค.
HTML
JS
์ผ๋จ ๋ด ๋ง์ฐ์ค์ ์์น๊ฐ ์ด๋ค div์ ์๋์ง๋ฅผ ์์๋์ต๋๋ค.
ํ์ฌ ๋ง์ฐ์ค๊ฐ ์ฝ์ ์ ์๋ div๋ ๊ฐ์ฅ ํ์์ div(class="section-content")์ด๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ๋ฅผ ํธ์ถํด์ ๋๋ ์ผํ๊ณ ,
classList.js์์ ๊ฐ div์๊ฒ ๋ค๋ฅธ class name์ ์ง์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ div๋ฅผ ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
์์ค๋ฅผ ์ปดํ์ผํ๋ ์์๋๋ก ๊ฐ๋ณผ๊น์?
1. html์ ์ ๋ถ ์ฝ์ ํ body๊ฐ ๋๋๊ธฐ ์ , test.js(scroll.js)๋ฅผ ๋ถ๋ฌ์จ๋ค.
2. init() <-- init์ผ๋ก ์ฒ์ ์ ๊ทผํ๊ณ init ํจ์๋ฅผ ํธ์ถํ๋ค.
3. getCurrentDivClassName() <-- init ํจ์์์๋ getCurrentDivClassName() ์ ์ฅ ๊ธธ๊ฒ๋ ์ง์๋ค, ๋ฌดํผ ํจ์๋ฅผ ํธ์ถํ๋ค.
4. onMouseOver()์์ ์ด๋ฒคํธ ๊ฐ์ฒด์ target ์์ฑ์ ํตํด ํ์ฌ ์์น๋ฅผ ์๊ณ ๊ทธ ๋ถ๋ชจ Element๋ฅผ(?) ๋ณ์์ ๋ด๋๋ค.
5. ๋ด์ ๋ถ๋ชจ์ class name ์ค์ ์ง์ ํ ๋ฐฐ์ด์ ๊ฐ์ด ํฌํจ๋ class name์ด ์์ผ๋ฉด onMouseWheel ํจ์๋ฅผ ํธ์ถํ๋ค.
6. onMouseWheel ํจ์์์ ์ด์ div์ ๋ค์ div์ ๊ฐ์ ๊ฐ๊ฐ ๋ณ์์ ๋ด๊ณ , event ๊ฐ์ฒด์ wheelDelta ๊ฐ์ผ๋ก ์๋ก ์คํฌ๋กค์ธ์ง, ์๋๋ก ์คํฌ๋กค์ธ์ง ๊ตฌ๋ถ ์ง์ ์ ์๋ค.
๊ฒฐ๊ณผ๋ฌผ
์คํฌ๋กค์ ์๋ก ํ๋ฉด ์ด์ div๊ฐ ์๊ธฐ ๋๋ฌธ์ undefined๋ฅผ ๋ด๋ฑ๊ณ , "wheel up" string์ด ์ถ๋ ฅ๋๊ณ ,
์คํฌ๋กค์ ์๋๋ก ํ๋ฉด ๋ค์ div์ธ sec1 DOM(?)์ด ์ถ๋ ฅ๋๋ฉด์ ๋์์ "wheel down"์ด ์ถ๋ ฅ๋ฉ๋๋ค.
์์ง ํด๊ฒฐ์ด ์๋ ๋ถ๋ถ์,
JSํ์ผ์ ๋ณด๋ฉด offset์ด ์๋จน๋๋ค? ์๋ํ์ง ์๋๋ค? ๋ด๊ฐ ๋ญ ์๋ชปํ๋ค?
section๋ณด๋ค ๋ ์์์ body๋ html์์ animate ํด์ผํ๋?
jQuery์์ ์ด๋ ๊ฒ ๋๋ถ๋ถ ์ฐ๋๋ฐ, Vanilla๋ก๋ง ํ๋ ค๋ ์๋ฃ ์ฐพ๊ธฐ๊ฐ ํ๋๋ค์ใ ใ (ํ๊ณ ์ค์ง๊ณ ์-)
<script> function fnMove(seq){ var offset = $("#div" + seq).offset(); $('html, body').animate({scrollTop : offset.top}, 400); } </script> ์ถ์ฒ: https://cofs.tistory.com/191 [CofS]
ํน์ ์ด ๊ธ์ ๋ณด์๊ณ solution์ด ์์ผ์๋ฉด ๋๊ธ ์ข ๋ถํ๋๋ฆด๊ฒ์....ใ ใ
๋์์ฃผ์ธ์;;;;ใ ใ ใ ใ ํจใ ใ
'javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ