본문 바로가기
Front-end/gsap

스크롤 특정 위치에 도달 하면 JS 함수 실행하기 [GSAP]

by mooyou 2025. 6. 15.
728x90
300x250
SMALL

이번에는 스크롤로 특정 영역 도달 시 단순히 애니메이션 효과를주는게 아님 함수를 실행하는 방법을  알아보겠습니다.

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8" />
  <title>GSAP ScrollTrigger - 함수 실행</title>
  <style>
    body {
      margin: 0;
      font-family: sans-serif;
    }

    .spacer {
      height: 100vh;
      background: #f0f0f0;
    }

    .trigger-zone {
      height: 300px;
      background: #4caf50;
      color: white;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
    }
  </style>
</head>
<body>

  <div class="spacer">스크롤 내려주세요 ↓</div>

  <div class="trigger-zone">트리거 영역</div>

  <div class="spacer"></div>

  <!-- GSAP & ScrollTrigger CDN -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/ScrollTrigger.min.js"></script>

  <script>
    gsap.registerPlugin(ScrollTrigger);

    // 실행할 함수
    function myCustomFunction() {
      alert("지정한 영역에 도달했습니다!");
      console.log("스크롤 트리거 함수 실행됨");
      // 여기에 원하는 JS 함수 실행 가능 (ex. ajax 호출, 데이터 로딩, 모달 열기 등)
    }

    // ScrollTrigger 설정
    ScrollTrigger.create({
      trigger: ".trigger-zone",
      start: "top 80%", // trigger 요소의 top이 뷰포트의 80% 지점에 도달할 때
      onEnter: myCustomFunction, // 함수 실행
      once: true // 한 번만 실행되도록
    });
  </script>

</body>
</html>
  • gsap.registerPlugin(ScrollTrigger) : GSAP은 기본적으로 core 기능만 포함되어 있고 ScrollTrigger 같은 확장 플러그인은 별도로 등록해야 사용 가능하다, 이 명령으논  ScrollTrigger를 GSAP 안에서 사용할 수 있게 등록해주는 명령어이다.
  • trigger : 이 트리거 요소가 기준이 된다. 즉 여기서는 .trigger-zone 요소가 스크롤 지점 감지의 기준점이 된다,
  • start : top 80%는 트리거 요소의 top이 브라우저 화면의 80%지점에 닿을 때 실행하라는 뜻이다.
  • onEnter : 트리거 조건에 도달했을 때 실행할 사용자 정의 함수
  • once:true : true일 경우 한 번만 실행된다.(스크롤로 다시 돌아와도 재실행 안 됨 / 반복해서 실행하고 싶다면 이 옵션 제거)

 

 

스크롤 내려주세요 ↓
트리거 영역
 
728x90
반응형
LIST

댓글