티스토리 뷰


	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;

            //최소값은 -50 최대값은 50
            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;
            let 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("+ softPageX+"deg) rotateY("+ -softPageY+"deg)";


            //원 크기
            let circleWidth = mousePageX - circle.width/2;
            let circleHeight = mousePageY - circle.height/2

            //커서
            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.querySelector(".maxPageX").textContent = maxPageX;
            document.querySelector(".maxPageY").textContent = maxPageY;
        }


        document.addEventListener("mousemove", mouseMove);

자바스크립트를 이용하여 마우스 효과(mouse effect)를 주는 사이트 입니다.

이미지위에서 커서를 움직이면 커서 움직임에 따라 이미지가 3D효과로 움직이도록 만들었습니다.

커서가 움직일때 커서의 좌표값이 브라우저의 중앙에 위치하도록 해줍니다.

그 후에 Math.max / Math.min를 사용하여 최소값 최대값을 설정하여 그 범위 안에서 이미지가 움직이게 합니다.

그후에 perspective 와 translate 를 설정하여 3D효과로 움직이도록 했습니다.

 

 

마우스 이펙트

Respect yourself and others will respect you. 스스로를 존경하면 다른 사람도 당신을 존경할 것이다.

parkjongho1.github.io

 

반응형

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

Mouse Effect - 이미지 오버 효과  (0) 2022.04.13
MouseEffect - 텍스트 효과  (2) 2022.04.13
MouseEffect - 마우스효과  (0) 2022.02.24
MouseEffect - getBoundingClientRect  (0) 2022.02.24
MouesEffect - gsap 사용  (0) 2022.02.24
댓글
© 2022 babydevelop