javascript - 调整窗口大小后触发函数

标签 javascript jquery html resize

我正在对 $(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/

相关文章:

javascript - Angular JS 依赖注入(inject)——最佳实践

html - 在 jQuery Mobile 中保留文本输入值

javascript - 如何在 promise 之间等待

php - PHP 刷新可以与 jQuery ajax 一起使用吗?

javascript - 带有 url 的页面加载上的事件选项卡

javascript - Onclick 函数一键触发两次

javascript - 如何从不同的数据列表中选择值并将其一次显示在同一个文本区域框中?

javascript - jquery Magnific Popup 无法工作 - js-newbie

javascript - 在 TypeScript 中定义重载函数的工厂

Javascript 没有从 html 按钮调用