일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- scrollevent
- getBoundingClientRect
- JavaScript
- Sticky
- css
- pointermove
- width
- html
- React
- classList
- Animation
- scroll
- For
- input
- 애니메이션
- swiperjs
- addEventListener
- localstorage
- NAV
- 반복문
- 이벤트리스너
- Hover
- 스크롤
- forEach
- swiper
- 확장성
- NodeList
- scrollY
- insertAdjacentHTML
- mousemove
- Today
- Total
ZeroToHunnit Coding
[JAVASCRIPT] 마우스커서 따라 움직이는 효과 본문
마우스 커서 자체를 변경해서 새로운 느낌을 줄 수 있지만 다른 요소를 마우스 커서에 따라다니게 하면 더 관심을 살 수 있을 것이다.
HTML
그냥 큰 div안에 point-cursur라는 저 따라다니는 것을 만들어 주었다.
CSS
커서의 모양을 잡아주고 position: absolute를 해서 우선 중간으로 오게 top, left, transform값을 조정해준다.
JAVASCRIPT
우선 window에 이벤트리스너로 pointermove라는 코드를 사용해준다. pointermove는 마우스커서의 움직임을 파악한다.
* mousemove와 같은 기능인데 차이점은 pointermove를 사용하면 모바일에서도 인식이 된다고 한다.
pointcursor에 animate코드를 걸어주고 left와 top값을 조정하는 애니메이션을 걸어준다. duration은 마우스가 움직였을 때 얼마 정도로 따라가는지 지속시간을 나타내는데, 클수록 늦게 따라오고 작을수록 빨리 따라온다. fill부분은 css의 애니메이션과 똑같이 forwards를 작성하면 따라오고나서 원래대로 돌아가지않고 따라온 상태를 유지시켜준다.
처음에 100vh로 작업했을 땐 무난하게 잘 됐는데 200vh로 바꿔서해보니 스크롤이 내려간 후에 커서가 안내려오는걸 확인했다. 계속 고민하다가 console창에 e.clientY를 찍어보니 스크롤을 내려도 스크롤 내린 만큼의 Y값이 아닌 지금 화면의 Y값만 계속 표시되었다. 그래서 + window.scrollY로 스크롤 내린 값을 더해주니 height의 크기가 커져도 문제없이 잘 따라오는 것을 확인했다.
'JAVASCRIPT' 카테고리의 다른 글
[Javascript] 특정 위치가 되면 가로 스크롤하기 (0) | 2023.12.28 |
---|---|
[Javascript] 스크롤하면 메인 visual 크기 변경 (0) | 2023.12.27 |
[Javascript] 이벤트리스너 input, change의 차이 (0) | 2023.12.25 |
[JAVASCRIPT] div마다 스크롤 속도 다르게 하기 (0) | 2023.12.24 |
[JAVASCRIPT] SwiperJs, 스크롤하면 세로로 움직이는 사진,글자 (2) | 2023.12.23 |