节流
const debounce = ( fn,delay) => {
let timerId;
return (...args) => {
if (timerId) {
clearTimeout(timerId);
}
timerId = setTimeout(() => {
fn(...args);
timerId = null;
}, delay);
}
}
document.addEventListener('scroll', debounce((e) => {
console.log(123);
}, 300));
防抖
const debounce = (fn,delay = 500,imm = true) => {
let timer;
return (...args) => {
if (timer) {
clearTimeout(timer);
}
if (imm) {
if(!timer){
fn.apply(this,...args);
}
timer = setTimeout(()=>{
timer = null;
},1000)
}else{
timer = setTimeout(() => {
fn.apply(this,...args);
timer = null;
}, delay);
}
}
}
const implement = debounce((e) => {
console.log(123123);
}, 1000);
const imple = debounce(implement);
window.addEventListener('scroll',imple);
const debounce = (fn,delay = 500) => {
let timerId;
return (...args) => {
if (timerId) {
clearTimeout(timerId);
}
timerId = setTimeout(() => {
fn.apply(this,...args);
timerId = null;
}, delay);
}
}
const implement = debounce((e) => {
console.log(123123);
}, 1000);
const imple = debounce(implement);
document.getElementById('btn').addEventListener('click',imple);