티스토리 뷰
const circle = document.querySelector(".cursor").getBoundingClientRect();
function mouseMove(e){
//마우스 좌표 값
let mousePageX = e.pageX;
let mousePageY = e.pageY;
//마우스 좌표 기준점을 가운데로 변경
let centerPageX = window.innerWidth/2 - mousePageX; //가로 가운데로
let centerPageY = window.innerHeight/2 - mousePageY;//세로 가운데로
//좌표의 최대값 최소값 구하기
//centerPage 좌표 값이 800이상으로 넘어가지 않도록 설정.
//max 값에 Math.min을 한번 더 사용해서 centerPage의 값이 아무리 커져도 Math.min의 최소값이 나오도록 설정.
let maxPageX = Math.max(-800, Math.min(800, centerPageX));
let maxPageY = Math.max(-300, Math.min(300, centerPageY));
//각도 줄이는 설정
let anlexpageX = maxPageX * 0.12;
let anlexpageY = maxPageY * 0.12;
//부드럽게 설정
let softPageX =0, softPageY =0;
softPageX += (anlexpageX - softPageX) * 0.4;
softPageY += (anlexpageY - softPageY) * 0.4;
//이미지 움직이기
// transform: rotateX(0deg) rotateY(0deg);
const imgMove = document.querySelector(".mouse__img");
imgMove.style.transform ="perspective(600px) rotateX("+softPageY+"deg) rotateY("+ -softPageX+"deg)";
//원 크기
let circleWidth = mousePageX - circle.width/2;
let circleHeight = mousePageY - circle.height/2 //커서
gsap.to(".cursor", {duration: .3, left: circleWidth, top: circleHeight});//gsap로 마우스 움직이는 애니메이션 설정.
//좌하단에 좌표값 출력
document.querySelector(".mousePageX").textContent = mousePageX;
document.querySelector(".mousePageY").textContent = mousePageY;
document.querySelector(".centerPageX").textContent = centerPageX;
document.querySelector(".centerPageY").textContent = centerPageY;
document.querySelector(".maxPageX").textContent = maxPageX;
document.querySelector(".maxPageY").textContent = maxPageY;
}
document.addEventListener("mousemove", mouseMove);
마우스 이펙트
Luck is when preparedness meets opportunity 운이란 준비가 기회를 만나는 것이다.
jiseonpack.github.io
'Script Sample > Mouse Effect' 카테고리의 다른 글
Mouse Effect07 - 이미지 오버 효과 (0) | 2022.04.12 |
---|---|
Mouse Effect06 - 텍스트 효과 (0) | 2022.04.12 |
Mouse Effect04 - 이미지 효과 (0) | 2022.02.24 |
Mouse Effect03 - 조명 효과 (0) | 2022.02.23 |
Mouse Effect02 - 따라가기 효과2 (0) | 2022.02.23 |
댓글
© 2018 webstoryboy