인프런 커뮤니티 질문&답변

이나현님의 프로필 이미지
이나현

작성한 질문수

HTML5 CSS3 기초 & 반응형 웹 템플릿 만들기!

max-width : 899px - 2 mobile menu layout ,script

안녕하세요~! max-width 899px2 강의 문의 드립니다!

해결된 질문

작성

·

221

1

mobile menu layout 에서요 햄버거 버튼을 누르면 메뉴들이 뜨고 그 메뉴를 눌렀을 때 그 화면으로 가고 창이 닫히게 하고 싶은데 어떻게 하면 될까요..??ㅜㅜ script 독학중이라 많이 어렵네용,,

답변 1

2

LIZ.B님의 프로필 이미지
LIZ.B
지식공유자

강의에서 스크립트를 포함하고 있지 않지만, 일단 javascript로 진행하실거면.
html에서는
각 섹션마다 id="s0" ,s1,s2..이런식의 이름을 넣어주고,
html에 필요 plugin 리소스를 넣어줍니다.

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.3.3/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.6.0/ScrollToPlugin.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.6.0/ScrollTrigger.min.js"></script>

scirpt에서는

 const NAV_LIST = document.querySelectorAll('.nav li');
  let section = document.querySelectorAll('section');

  NAV_LIST.forEach(function (btn, index) {

    btn.addEventListener('click', function () {


      gsap.to(window, {
        duration: 1,
        scrollTo: {
          y: '#s' + index
        }
      })

      
    })

  })


요런식으로 작성하시면 될 거 같습니다. ^^ 버튼을 클릭하면 현재 내가 누른 버튼의 순서값을 index로 받고 내가 클릭한 버튼은 btn 매개변수로 받아냅니다. gsap scrollTo를 이용해 각 색션 이름에 id의 순번에 index를 대입해 duration:1(1초)로 이동하게 합니다.
꼭 완성하시길 , 화이팅입니다.^^

이나현님의 프로필 이미지
이나현
질문자

감사합니다~~! 도움이 많이 되었어요ㅎㅎ

이나현님의 프로필 이미지
이나현

작성한 질문수

질문하기