如何在调整大小时停止onResize函数执行其内容

时间:2013-06-07 08:40:49

标签: javascript jquery html

我希望jQuery.fn.resize的内容仅在我放开鼠标按钮后执行,而不是在调整窗口大小时。

我已经尝试过将onmousedown放在resize中,但它没有用。

$(window).resize(function(){           
    console.log("resizing")
});

1 个答案:

答案 0 :(得分:1)

您无法知道文档外发生了什么,并且在调整大小结束时您不会收到通知(调整大小可能以多种方式发生,而不是所有基于鼠标的方式)。

但你可以为同样的效果添加一个计时器:

(function(){
   var timer;
   $(window).resize(function(){
        if (timer) clearTimeout(timer);
        timer = setTimeout(function(){
           // do the things
        }, 200);
   });
})();

这会增加一点延迟(200毫秒应该可以),但这样可以避免大多数中间重新计算。

请注意,当您的javascript函数正在运行时,您不会收到事件,因此除非您真的希望用户在调整大小期间看不到任何内容,否则通常不必执行此操作。