티스토리 뷰

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;

    //X: 최솟값은 -800 최댓값은 800, Y: 최솟값은 -300, 최댓값은 300
    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;

    //부드럽게 설정     10-->30
    // let softPageX = 0,
    //     softPageY = 0;
    // softPageX = anlexpageX * 0.4;
    // softPageY = anlexpageY * 0.4;

    //div.cursor가 이동할 좌표 구하기(div.cursor가 마우스 좌표값 정 가운데에 오도록)
    let circleWidth = mousePageX - circle.width / 2;
    let circleHeight = mousePageY - circle.height / 2;

    //이미지움직이기
    //transform: rotateX(0deg) rotateY(0deg);
    //.mouse__img의 transform을 바꿈 rotate값에 커서값을 반영.
    const imgMove = document.querySelector(".mouse__img");
    imgMove.style.transform = "perspective(600px) rotateX(" + softPageY + "deg) rotateY(" + -softPageX +
    "deg)"; //속성값에 ;들어가면 안됨

    //커서의 움직임을 부드럽게 해준다.
    gsap.to(".cursor", {
        duration: .3,
        left: circleWidth,
        top: circleHeight
    });

    //출력
    document.querySelector(".mousePageX").textContent = mousePageX;
    document.querySelector(".mousePageY").textContent = mousePageY;
    document.querySelector(".centerPageX").textContent = centerPageX;
    document.querySelector(".centerPageY").textContent = centerPageY;

}

document.addEventListener("mousemove", mouseMove);

 

마우스 3D 효과 사이트

'Script Sample > Mouse Effect' 카테고리의 다른 글

Mouse Effect - 이미지 오버 효과  (0) 2022.04.14
Mouse Effect - 텍스트 효과  (0) 2022.04.14
Mouse Effect - 이미지 효과  (0) 2022.03.08
Mouse Effect - 조명 효과  (0) 2022.02.23
Mouse Effect - 따라가기(2)  (0) 2022.02.23
댓글
© 2018 webstoryboy