티스토리 뷰
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(-300, Math.min(300, centerPageX));
            let maxPageY = Math.max(-300, Math.min(300, centerPageY));
            // 각도 줄이는 설정
            let anglepageX = maxPageX * 0.12
            let anglepageY = maxPageY * 0.12
            // 부드럽게 설정
            let softPageX = 0;
            let softPageY = 0;
            softPageX += (anglepageX - softPageX) * 0.6;
            softPageY += (anglepageY - softPageY) * 0.6;
            // 이미지 움직이기 transform: rotateX, rotateY
            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: 0.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)
이미지 효과1번과 동일하게 우선 좌표의 기준값을 이미지 중앙으로 설정합니다.
Math.max / Math.min 을 이용하여 일정한 범위 내에 움직일 수 있게 최대값, 최소값을 잡아줬습니다.
그다음 perspective를 설정하여 바라보는 시점을 설정하여 좌표값에 따라 사진이 translate 되도록 설정하여
마우스를 따라 회전하는 것 처럼 연출하였습니다.
'Script Sample > Mouse Effect' 카테고리의 다른 글
| Mouse Effect 07 - 이미지 오버 효과 (0) | 2022.04.13 | 
|---|---|
| Mouse Effect 06 - 텍스트 효과 (0) | 2022.04.13 | 
| Mouse Effect 04 - 이미지 효과 (0) | 2022.02.24 | 
| Mouse Effect 03 - 조명 효과 (0) | 2022.02.23 | 
| Mouse Effect 02 - 따라다니기2 (0) | 2022.02.23 | 
					댓글
						
					
					
					
				
			
						© 2018 webstoryboy