Script Sample/Mouse Effect
Mouse Effect 04 - 이미지 효과
Gentlemanjs
2022. 2. 24. 10:13
const circle3 = document.querySelector(".cursor").getBoundingClientRect();
document.querySelector(".mouse__img").addEventListener("mousemove", (e) => {
gsap.to(".cursor", {duration: 0.2, left: e.pageX - circle3.width/2, top: e.pageY - circle3.height/2})
// 마우스 좌표 값
let mousePageX = e.pageX;
let mousePageY = e.pageY;
// 마우스 좌표 값 기준점을 가운데로 초기화
// 전체 길이 / 2 - 마우스 X 좌표값
let centerPageX = window.innerWidth / 2 - mousePageX
let centerPageY = window.innerHeight / 2 - mousePageY
// 이미지 움직이기
// const imgMove = document.querySelector(".mouse__img figure img");
// imgMove.style.transform = "translate("+centerPageX/20+"px, "+centerPageY/20+"px)";
gsap.to(".mouse__img figure img", {duration: 0.3, x: centerPageX/20, y: centerPageY/20});
// 출력
document.querySelector(".mousePageX").textContent = mousePageX;
document.querySelector(".mousePageY").textContent = mousePageY;
document.querySelector(".centerPageX").textContent = centerPageX;
document.querySelector(".centerPageY").textContent = centerPageY;
})
이미지에 커서를 올리면 커서를 따라 이미지가 움직이도록 표현했습니다.
이미지의 크기를 늘리고 이미지가 보여지는 공간은 고정시킵니다.
그 뒤에 마우스에 위치에 따라 이미지가 움직이도록 설정합니다.
그러기 위해 기준점을 이미지 중앙으로 바꾸어야 합니다.
.innerWidth / .innerHeight 값을 이용하여 화면 전체의 위치값을 구하고
(전체 좌표 / 2 ) = 기준점으로 잡으면 화면 중앙에 와있을 때 좌표값이 0,0 이 됩니다.
그 뒤에 css적인 부분 처리를 하면 완성입니다.