티스토리 뷰

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: 0.3, left: e.pageX -5, top: e.pageY -5});		// gsap효과로 변환
        gsap.to(follower, {duration: 0.8, left: e.pageX -15, top: e.pageY -15});

        document.querySelectorAll(".mouse__wrap span").forEach(e => {		// span처리 된 요소들
            e.addEventListener("mouseover", ()=>{							// span처리 된 요소들에 마우스오버 했을 때
                cursor.classList.add("active")									// active 추가/삭제
                follower.classList.add("active")
            })
            e.addEventListener("mouseout", ()=>{
                cursor.classList.remove("active")
                follower.classList.remove("active")
            })
        })
        document.querySelector(".info .title").addEventListener("mouseover", ()=>{		// title에 마우스 오버
            cursor.classList.add("show")
            follower.classList.add("show")
        })
        document.querySelector(".info .title").addEventListener("mouseout", ()=>{
            cursor.classList.remove("show")
            follower.classList.remove("show")
        })
        document.querySelector(".info .number").addEventListener("mouseover", ()=>{		// number에 마우스 오버
            cursor.classList.add("show1")
            follower.classList.add("show1")
        })
        document.querySelector(".info .number").addEventListener("mouseout", ()=>{
            cursor.classList.remove("show1")
            follower.classList.remove("show1")
        })
        document.querySelector(".info .source-btn").addEventListener("mouseover", ()=>{		// 소스보기 버튼에 마우스 오버
            cursor.classList.add("show2")
            follower.classList.add("show2")
        })
        document.querySelector(".info .source-btn").addEventListener("mouseout", ()=>{
            cursor.classList.remove("show2")
            follower.classList.remove("show2")
        })

        // 좌표값 출력
        document.querySelector(".pageX").innerText = e.pageX
        document.querySelector(".pageY").innerText = e.pageY
    })

전체 사이트 보기

자바스크립트로 마우스 효과(mouse effect)를 주는 두번째 예제입니다.

gsap을 이용하여 애니메이션 효과를 더욱 역동적으로 표현했습니다.

 

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

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