首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript onresize事件多次触发

JavaScript onresize事件多次触发
EN

Stack Overflow用户
提问于 2012-06-22 05:48:01
回答 2查看 6.5K关注 0票数 2

当onresize事件被触发时,我在尝试只运行一次函数时遇到了一些问题,我已经查看了这个问题DOM onresize event,但我没有使用jQuery,并且无法在没有该函数的情况下运行该函数。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-22 05:57:31

在调整大小操作期间,对每个帧调用一次resize事件。如果你想在大小调整完成时调用它,只需使用回调函数设置计时器即可。

代码语言:javascript
复制
var timeOut = null;

window.onresize = function(){
    if (timeOut != null)
        clearTimeout(timeOut);

    timeOut = setTimeout(function(){
        // YOUR RESIZE CODE HERE
    }, 500);
};
票数 11
EN

Stack Overflow用户

发布于 2012-06-22 05:56:26

您可以使用debounce实现from underscore

代码语言:javascript
复制
  function debounce(func, wait, immediate) {
    var timeout;
    return function() {
      var context = this, args = arguments;
      var later = function() {
        timeout = null;
        if (!immediate) func.apply(context, args);
      };
      if (immediate && !timeout) func.apply(context, args);
      clearTimeout(timeout);
      timeout = setTimeout(later, wait);
    };
  }
  window.onresize = debounce(function() {
      // Your code here
  }, 500);

或者使用library from the linked question。没有jQuery,它就是Cowboy.debounce(...)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11147266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档