프론트엔드-코드/Javascript 93

lodash

중복되는 데이터를 처리할 때 쓴다고 함. node js 말고도 cdn으로 사용 가능. window.addEventListener('scroll', (e)=>{ console.log(window.scrollY); }); 이거 스크롤 할 때 너무 실행주기가 짧아서 몇초마다만 실행시키게 지연 시키려고 로우대시, _ 말 그대로 로우대시의 기능 중 하나인데, throttle() 직역으로 조절판이라는 뜻 인데 특정 시간마다만 실행되도록 조절해 주는 듯. window.addEventListener('scroll', _.throttle(()=>{ console.log(window.scrollY); },1000)); 이렇게 하면 아무리 호출해도 1초마다만 실행. 근데 난 이거 구현할 수 있을 듯 let isEventin..

이벤트 리스너 passive

스크롤 이벤트 리스너를 추가할 때 document.addEventListener("scroll", (e)=>{ }, {옵션들}) 이렇게 이벤트용 옵션을 객체로 넣을 수 있다. 그 중 하나가 passive {passive:true} 이렇게 할 수 있다. 이거 왜에도 capture, once 등 뭐랄까 버블링? 이벤트 전파에 대한 것도 옵션을 줄 수 있는 모양이다. passive는 스크롤 이벤트가 발생하면 보통 스크롤을 취소할 지 여부를 알 수 없기 때문에 항상 수신기가 끝날 때 까지 기다렸다가 스크롤을 한다. passive 옵션은 브라우저에게 스크롤을 기다리지 않고 즉시 스크롤 해도 됨을 알리는 거다.

절대 위치, 상대위치 가져오기(스크롤 포함)

$box2.getBoundingClientRect() 태그.getBoundingClientRect() DOMRect 객체를 가져오는 데, 여기에는 left, right, bottom, top이 있고 x, y가 있다. width, height도 있다. left, right, top, bottom, x, y 이건 다 뷰포트 기준으로 상대위치이다. 뷰포트 기준의 상대위치를 가져오는 것이다. 그러므로, 만약 절대 위치를 가져오고 싶다면, console.log($box2.getBoundingClientRect().top + window.scrollY); 이렇게 스크롤 값을 더해주면 된다. top의 뷰포트 위쪽의 가장자리를 나타내므로. y는 좀 다르다고 한다. y는 현재 창 기준 y좌표 비슷해 보이지만 같지는 않다..