Ron*_*vdb 5 javascript resize window
我在调整窗口大小时调用一个函数:
window.addEventListener("resize", calculateDimensions());
Run Code Online (Sandbox Code Playgroud)
但是我需要一种方法在调整窗口大小后调用不同的函数.有没有办法使用本机js(而不是jquery)实现这一点
TIA
小智 17
我喜欢Jonas Wilms漂亮的小去抖函数,但是我认为将去抖时间作为参数传递会更好。
// Debounce
function debounce(func, time){
var time = time || 100; // 100 by default if no param
var timer;
return function(event){
if(timer) clearTimeout(timer);
timer = setTimeout(func, time, event);
};
}
// Function with stuff to execute
function resizeContent() {
// Do loads of stuff once window has resized
console.log('resized');
}
// Eventlistener
window.addEventListener("resize", debounce( resizeContent, 150 ));
Run Code Online (Sandbox Code Playgroud)
Jon*_*lms 14
您可以设置超时并在再次触发调整大小时重置它.因此,最后一次超时未被取消,并且该功能已运行:
function debounce(func){
var timer;
return function(event){
if(timer) clearTimeout(timer);
timer = setTimeout(func,100,event);
};
}
Run Code Online (Sandbox Code Playgroud)
可以像这样:
window.addEventListener("resize",debounce(function(e){
alert("end of resizing");
}));
Run Code Online (Sandbox Code Playgroud)