티스토리 뷰

{
 const cursor = document.querySelector(".cursor");
        const follower = document.querySelector(".cursor-follower")
        
        window.addEventListener("mousemove", e =>{
            //커서 좌표값 할당
            cursor.style.left = e.pageX -5 + "px";
            cursor.style.top = e.pageY -5 + "px";
            follower.style.left = e.pageX -15 + "px";
            follower.style.top = e.pageY -15 + "px";

            gsap.to(cursor, {duration: .3, left: e.pageX -5, top: e.pageY -5})
            gsap.to(follower, {duration: .8, left: e.pageX -15, top: e.pageY -15})

            //오버 효과
            //span 오버 했을 때 클래스 active 추가/ 나갔을 때 active 삭제
            //mouseover,mouseenter //mouseout, mouseleave / 이벤트 버블링 효과

            document.querySelectorAll("span").forEach((span)=>{ //모든 span에게 mouseover을 했을때
                span.addEventListener("mouseover", ()=>{            
                    cursor.classList.add("active");             //cursor에 active 를 추가하고
                    follower.classList.add("active");       //cursor-follower에 active를 추가한다
                })
                span.addEventListener("mouseleave", ()=>{ //mouseleave햇을때
                    cursor.classList.remove("active")       //cursor에 active를 삭제
                    follower.classList.remove("active")     //cursor-follower에 active를 삭제
                })
            })

            document.querySelectorAll(".info").forEach((span)=>{    //info에 mouseover했을때
                span.addEventListener("mouseover", ()=>{
                    cursor.classList.add("show");               //cursor에 show추가
                    follower.classList.add("show");             //cursor-follower에 show추가
                })
                span.addEventListener("mouseleave", ()=>{   //mouseleave 했을땐
                    cursor.classList.remove("show")         //cursor에 show삭제
                    follower.classList.remove("show")          //cursor-follower에 show삭제
                })
            })
             //출력
            document.querySelector(".pageX").innerText = e.pageX;   //pageX값을 화면에 출력
            document.querySelector(".pageY").innerText = e.pageY;   //pageY값을 화면에 출력
        })

}

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

Mouse Effect 06 - 텍스트 효과  (0) 2022.04.16
Mouse Effect 05 - 이미지 효과 2  (0) 2022.02.24
Mouse Effect 04 - 이미지 효과  (0) 2022.02.24
Mouse Effect03 - 조명효과  (0) 2022.02.24
Mouse Effect 01 - 따라다니기  (0) 2022.02.24
댓글
© 2018 webstoryboy