如何给resize事件添加节流功能

现在有一个需求,在$(window).resize时clearInterval(xxx),然后再resize结束时再给xxx=setInterval(function(){},xxx),如何才能实现?

阅读 4.9k
2 个回答
var handle;
function resize(e) {
    clearInterval(handle);
    handle = setInterval(function(){
        ...dosomething
    }, 100);
}
var intervalId, timeoutId, interval = 500;
$(window).resize(function(){
    if(intervalId){
        clearInterval(xxx);
    }
    
    timeoutId && clearTimeout(timeoutId);
    
    if(!intervalId){
        // 如果 500 毫秒内没有执行 resize 事件我们就认为停止 resize 啦
        timeoutId = setTimeout(function(){
           intervalId = setInterval(function(){}, milliseconds);
        }, interval)
    }
    
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题