我正在对 $(window).resize()
执行一些函数。其中一个功能是包含大量 div 的复杂动画。
$window.resize(function() {
// some functions
doAnim();
}
这里的问题是,resize()
函数会触发很多次。是否有可能在 resize()
完成后触发一个函数,而不是触发一百次?
干杯
最佳答案
所以,我相信这是一个类似的场景,当用户“键入”一些东西时:你无法知道用户什么时候完成了造句,这里也一样,你不知道用户什么时候完成调整大小;所以你可以做的是有一个可接受的间隔:
var idt;
$(window).resize(function() {
if (idt) clearTimeout(idt);
idt = setTimeout(doAnim, 500);
}
您还可以使用闭包来避免 idt
变量污染全局范围。
但是这里的要点是,每次用户调整窗口大小时,它都会设置一个超时并清除前一个超时:只有当用户没有调整大小而离开窗口时,才会执行 doAnim
函数它半秒钟。当然,您可以设置自己的延迟。
关于javascript - 调整窗口大小后触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835604/