중복되는 데이터를 처리할 때 쓴다고 함.
node js 말고도 cdn으로 사용 가능.
window.addEventListener('scroll', (e)=>{
console.log(window.scrollY);
});
이거 스크롤 할 때 너무 실행주기가 짧아서
몇초마다만 실행시키게 지연 시키려고
로우대시, _ 말 그대로 로우대시의 기능 중 하나인데,
throttle() 직역으로 조절판이라는 뜻 인데 특정 시간마다만 실행되도록 조절해 주는 듯.
window.addEventListener('scroll', _.throttle(()=>{
console.log(window.scrollY);
},1000));
이렇게 하면 아무리 호출해도 1초마다만 실행.
근데 난 이거 구현할 수 있을 듯
let isEventing = false;
window.addEventListener('scroll', ()=>{
if(!isEventing){
console.log(window.scrollY);
isEventing = true;
setTimeout(()=>{
isEventing = false;
},300);
}
});
window.addEventListener("scroll", () => {
if (!isEventing) {
isEventing = true;
console.log(window.scrollY);
if (window.scrollY > 200) {
gsap.to($badges, .3, {
opacity : 0,
display : 'none'
})
} else {
gsap.to($badges, .3, {
opacity : 1,
display : 'block'
})
}
setTimeout(() => {
console.log(window.scrollY);
if (window.scrollY > 200) {
gsap.to($badges, .3, {
opacity : 0,
display : 'none'
})
} else {
gsap.to($badges, .3, {
opacity : 1,
display : 'block'
})
}
isEventing = false;
}, 300);
}
});
타임아웃 안에도 한번 실행해야 마지막으로 움직였을 때 스크롤값 가져와서 로직 할 수 있음..
lodash가 이런 식 인듯.
'프론트엔드-코드 > Javascript' 카테고리의 다른 글
구조 분해 할당 (0) | 2023.10.26 |
---|---|
객체 <-> JSON <-> 문자열 변환 (0) | 2023.10.25 |
휠 기본이벤트 막기 (0) | 2023.10.18 |
이벤트 리스너 passive (0) | 2023.10.10 |
target과 currentTarget 차이 (0) | 2023.10.10 |