클릭하면 이동하는 자바스크립트
본문
안녕하세요. article1 ~ article 5 클릭시
company_click 클릭시 company_arti 로 이동하는 js를 짰는데요.
일단 높이값을 가져왔는데 이동하는 이벤트리스너를 어떻게 배열로 나오게 하는지..
function moveHandler[i]() { 이부분이 잘못된 것 같은데..
혹시 아시는 고수님? 알려주시면 감사하겠습니다~
함수 이름을 for 안에넣는 방법이 있을까요?
// 클릭시 원하는 곳으로 이동하기
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
function moveHandler(i) {
window.scrollTo({ top: company_h[i] - menuHeight, behavior: 'smooth' })
}
company_click[i].addEventListener('click', moveHandler(i))
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' })
}
});
}
어떤 값이 어떻게 넘어오는지 console.log 를 찍어봐야 알것같습니다.
소스의 일부분만으로는 저도 답을 드릴수가 없습니다.
답변을 작성하시기 전에 로그인 해주세요.