• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

ScrollTrigger의 end와 toggleClass

23.11.29 16:24 작성 조회수 353

1

안녕하세요, 선생님.

섹션2 Advanced Trigger - practice 예제에서

fixedHeader() 함수를 통해 헤더가 pin되어 start 지점부터 fixed 처리가 되잖아요~

이와 동시에 fixed 될 때 특정 클래스(toggleClass : "active")를 넣어서 스타일을 다르게 주려고 했거든요.

그런데 end 마지막 지점에 스크롤이 닿으면 fixed는 되어있지만 class는 사라지더라고요.

혹시 다른 방법이 있을까요?

 

function fixedHeader(){
  ScrollTrigger.create({
    trigger: '.nav_container',
    start: 'top top',
    // endTrigger:'.footer',
    end: 'max',
    pin: true,
    pinSpacing: false,
    toggleClass : "active"
  })
}

답변 1

답변을 작성해보세요.

1

안녕하세요 류지 25님 😀

toggleClass는 해당 지점을 leave 하게 되면 바로 클래스를 제거해버리기 때문에 저런 문제가 생기는 것 같습니다.

 

앞서 학습한

enter콜백을 사용하여 엔터가 된 시점부터 클래스를 넣으시고,

 

onUpdate 콜백을 사용해 스크롤 진행률이 얼만큼 이하로 내려갔다면 해당 클래스를 제거하는 코드를 작성해 보시는게 좋을 것 같습니다.

 

만약 텍스트만 보고 해결을 못하셨다면, 댓글 남겨주시면 구현 코드를 추가로 드려보도록 할게요 ㅎㅎ
(직접 고민하고 사용해보는 연습이 중요합니다!)

감사합니다 :)

류지25님의 프로필

류지25

질문자

2023.11.29

감사합니다!!

onEnter, onLeaveBack 콜백으로 잘 해결되었습니다.