首页 > web前端 > js教程 > 如何仅在大小调整完成时调用JQuery的RESIZE事件?

如何仅在大小调整完成时调用JQuery的RESIZE事件?

Linda Hamilton
发布: 2024-12-27 00:41:08
原创
864 人浏览过

How to Call JQuery's RESIZE Event Only When Resizing Completes?

大小调整完成时使用JQuery调用RESIZE事件

在开发响应式应用程序时,经常需要跟踪浏览器窗口大小的变化来调整大小相应的用户界面。但是,在手动调整窗口大小时连续调用调整大小函数可能会导致函数调用过多。

为了解决这个问题,JQuery 提供了一种方法,仅在窗口完成调整大小后调用一次调整大小函数。

使用 setTimeout() 的解决方案

在 JQuery 的调整大小事件监听器中,使用setTimeout() 函数以指定的延迟调用所需的操作。这确保了仅在调整大小停止后调用该函数。

$(window).resize(function() {
  if (this.resizeTO) clearTimeout(this.resizeTO);
  this.resizeTO = setTimeout(function() {
    $(this).trigger('resizeEnd');
  }, 300);
});

$(window).on('resizeEnd', function() {
  // Code to be executed after resizing is complete
});
登录后复制

在此解决方案中,在 300 毫秒延迟后触发 resizeEnd 自定义事件,保证它仅在调整大小完成后发生。

使用 setInterval() 的其他解决方案

或者,您可以使用 setInterval() 连续检查窗口大小是否发生变化。当大小在指定时间内保持稳定时,会调用 resize 函数。

var resizeInterval;
window.onresize = function() {
  if (resizeInterval) clearInterval(resizeInterval);
  resizeInterval = setInterval(function() {
    if (window.innerWidth == previousWidth && window.innerHeight == previousHeight) {
      clearInterval(resizeInterval);
      // Code to be executed after resizing is complete
    }
  }, 300);
  previousWidth = window.innerWidth;
  previousHeight = window.innerHeight;
};
登录后复制

在这两种解决方案中,都可以根据应用程序的要求调整延迟值。

以上是如何仅在大小调整完成时调用JQuery的RESIZE事件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板