[Javascript] 특정 위젯으로 스크롤(data-toggle 버튼인 경우)

Kim Tae Won·2021년 12월 27일
0
post-thumbnail
<button id="btn" data-toggle="collapse" data-target="아이디" >버튼</button>

이와 같이 버튼을 누를 시에 "아이디"에 해당하는 div 나타나게 되는데,
기존 아래와 같은 코드로 실행 시엔 아직 화면상에 나타나지 않았기 때문에offsetTop이 0으로 나와 맨 위로 이동하게 된다.(height도 0이다)

let location = document.querySelector("#아이디").offsetTop;

window.scrollTo({
  top: location,
  behavior: 'smooth'
});

따라서 누르는 버튼 등 특정 div의 location에 해당 "아이디"의 div의 높이만큼 더해주면 원하는 위치로 스크롤이 가능하다.
나의 경우 console에서 체크해보니 div크기가 35라 35만큼 더해주었다.
최종 코드는 다음과 같다.
나의 경우 누르는 버튼 아래에 div가 나타나므로, 버튼 location에 해당 div크기를 더해주었다.

let location = document.querySelector("#btn").offsetTop;

window.scrollTo({
  top: location + 35,//원하는 크기만큼
  behavior: 'smooth'
});
profile
꿈이 너무나 큰 평범한 컴공 대딩에서 취업 성공!

2개의 댓글

comment-user-thumbnail
2021년 12월 27일

도움 많이 되었어요~

1개의 답글