테스트 사이트 - 개발 중인 베타 버전입니다

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

itb 2년 전 조회 3,150

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

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

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

 

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

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

 

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

 

 

</p>

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

<p>  var company_arti = document.querySelectorAll("#company article");</p>

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

<p>  var menuHeight = document.querySelector("#header").offsetHeight;</p>

<p>  function location_action (){</p>

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

<p> </p>

<p>    var company_h = company_arti[i].offsetTop;</p>

<p> </p>

<p>    function moveHandler[i]() {</p>

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

<p>    }</p>

<p>  }</p>

<p>   </p>

<p>  company_click[i].addEventListener('click', moveHandler[i])</p>

<p>  }</p>

<p>    location_action();</p>

<p>   </p>

<p>

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

답변 3개

채택된 답변
+20 포인트
toqurk
2년 전
function moveHandler(i) {
      window.scrollTo({ top: company_h[i] - menuHeight, behavior: 'smooth' })
    }

 

 

company_click[i].addEventListener('click', moveHandler(i))
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
itb
2년 전
[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개

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

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

toqurk
2년 전

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

 

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

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

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

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

로그인