728x90
๐ ๋ง์ฐ์ค ์ปค์ ๋ชจ์ ๋ฐ๊พธ๊ธฐ
์ปค์ ๋ชจ์์ ๋ฐ๊พธ๋ ์๋ฆฌ๋ ๊ฐ๋จํฉ๋๋ค. html์ ๋น์ด์๋ ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ค ํ์
css๋ก ์ฌ์ฉํ ์ปค์ ๋ชจ์์ ์ปค์คํ ํด์ค ํ์ script๋ก ๋ง์ฐ์ค๋ฅผ ๋ฐ๋ผ๋ค๋๊ฒ ํ๋ ์๋ฆฌ์ ๋๋ค.
์๋ ํ๊ทธ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
< HTML >
- html์ ์ปค์๋ก ์ฌ์ฉํ
๋น ํ๊ทธ
๋ฅผ ๋ง๋ค์ด ์ค๋๋ค.<div class="cursor"></div>
< CSS >
- css๋ก ์ปค์๋ก ์ฌ์ฉํ ๋ชจ์์ ์ปค์คํ ํด์ค๋๋ค.
position: absolute
๋ก ๋ง๋ค์ด์ง div ํ๊ทธ๋ฅผ ๋์์ค๋๋ค.- body์ cursor: none ์ผ๋ก ๊ธฐ์กด ์ปค์๋ฅผ ์์ ์ค๋๋ค.
body{cursor: none;} .cursor{ width: 20px; height: 20px; background-color: #000; border-radius: 10px; position: absolute; left: 0; top: 0; z-index: 999; transition: background-color .2s, border-color .2s, border-radius .2s, transform .6s }
< JS >
- script์
mousemove ์ด๋ฒคํธ
๋ฅผ ์ฌ์ฉํฉ๋๋ค. client x,y
๊ฐ์ ์ด์ฉํด ๋ง์ฐ์ฆ ์ขํ๋ฅผ ๊ตฌํ ํ์ position๊ฐ left, top ๊ฐ์ ๋ฃ์ด์ค๋๋ค.client x,y : ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์์๊ฒ ์นํ์ด์ง๊ฐ ๋ณด์ฌ์ง๋ ์์ญ์ ๊ธฐ์ค์ผ๋ก ์ขํ๋ฅผ ํ์ํฉ๋๋ค.
์คํฌ๋กค๋ฐ๊ฐ ์์ง์ด๋๋ผ๋ ๊ฐ์ ๋์ผํฉ๋๋ค.const cursor = document.querySelector('.cursor'); mouseEffect.addEventListener('mousemove',(e) => { cursor.style.left = `${e.clientX}px`; cursor.style.top = `${e.clientY}px`; });
728x90