2026, 새로운 도약을 시작합니다.

클릭하면 이동하는 자바스크립트 채택완료

안녕하세요. article1 ~ article 5 클릭시

company_click 클릭시 company_arti 로 이동하는 js를 짰는데요.

일단 높이값을 가져왔는데 이동하는 이벤트리스너를 어떻게 배열로 나오게 하는지..

function moveHandler[i]() { 이부분이 잘못된 것 같은데..

혹시 아시는 고수님? 알려주시면 감사하겠습니다~

함수 이름을 for 안에넣는 방법이 있을까요?

Copy


// 클릭시 원하는 곳으로 이동하기

  var company_arti = document.querySelectorAll("#company article");

  var company_click = document.querySelectorAll('.pc_gnb .main_menu1 .gnb-2dep > li > a');

  var menuHeight = document.querySelector("#header").offsetHeight;

  function location_action (){

  for (var i = 0; i  company_arti.length; ++i) {

 

    var company_h = company_arti[i].offsetTop;

 

    function moveHandler[i]() {

      window.scrollTo({ top: company_h[i] - menuHeight, behavior: 'smooth' })

    }

  }

   

  company_click[i].addEventListener('click', moveHandler[i])

  }

    location_action();

   

답변 3개

채택된 답변
+20 포인트
function moveHandler(i) {
      window.scrollTo({ top: company_h[i] - menuHeight, behavior: 'smooth' })
    }
company_click[i].addEventListener('click', moveHandler(i))
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

[code]
var company_arti = document.querySelectorAll("#company article");
var company_click = document.querySelectorAll('.pc_gnb .main_menu1 .gnb-2dep > li > a');
var menuHeight = document.querySelector("#header").offsetHeight;
function location_action (){
for (var i = 0; i < company_arti.length; ++i) {
var company_h = company_arti[i].offsetTop;

function moveHandler(i) {
window.scrollTo({ top: company_h[i] - menuHeight, behavior: 'smooth' })
}
company_click[i].addEventListener('click', moveHandler(i))
}
}
location_action();

[/code]

이렇게 했는데 반응이 없네요..ㅠ

댓글을 작성하려면 로그인이 필요합니다.

for (var i = 0; i < company_arti.length; ++i) {

    var company_h = company_arti[i].offsetTop;

company_click[i].addEventListener('click', function  (){

      window.scrollTo({ top: company_h[i] - menuHeight, behavior: 'smooth' })

    }

  });

  }

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

document.querySelectorAll('.pc_gnb .main_menu1 .gnb-2dep > li > a').addEventListener('click',
function(){
  ....
});
방식도 있습니다.

댓글을 작성하려면 로그인이 필요합니다.

어떤 값이 어떻게 넘어오는지 console.log 를 찍어봐야 알것같습니다.

소스의 일부분만으로는 저도 답을 드릴수가 없습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고