如何避免由其他事件触发的多次窗口大小调整
how to avoid windows resize triggering multiple times which is triggered by other events
我发现在设备方向更改期间,页面中的调整大小代码多次被绊倒。怀疑这是由于页面模式从横向更改为纵向期间发生的其他事件,例如页面滚动,反之亦然。我需要在窗口调整大小中编写逻辑,但它的调用不止一次。有什么方法可以避免其他事件影响窗口大小调整
窗口大小调整事件在每次窗口大小调整期间触发多次。正如Rory McCrossan在上面指出的那样,事件每改变一个像素就会触发一次。
一个选项是使用 debounce
函数,例如 David Walsh 描述的函数:
https://davidwalsh.name/javascript-debounce-function
这是另一篇有用的文章,描述了限制和去抖之间的区别:
https://css-tricks.com/the-difference-between-throttling-and-debouncing/
最后,您可以使用不太优雅(但同样有效)的方法,即使用全局变量来跟踪何时希望允许触发 resize 事件。
var ok_to_resize=true;
$(function(){
$(window).resize(function(){
if (ok_to_resize){
//run your resize code
ok_to_resize = false;
setTimeout(function(){
ok_to_resize = true;
},500);
}
}); //END window.resize
}); //END document.ready
相关文章:
- 窗口大小调整事件在ie7中持续触发
- 根据窗口大小调整 HTML 中 SVG 图像的大小
- 在浏览器窗口大小调整时更改 JS 逻辑
- 提示不同的Javascript/JQuery在窗口大小调整为低于/高于设置宽度时显示
- AJAX查询处于活动状态时禁用窗口大小调整
- 如何计算窗口大小调整的大小更改百分比
- jQuery:窗口大小调整功能问题
- 满足某些条件时窗口大小调整和文档加载的 jQuery
- 如何运行窗口大小调整函数
- Craftyjs 在窗口大小调整时重绘
- 浏览器窗口大小调整的 JavaScript 功能
- 当窗口大小调整到 480px 以下时调用函数
- j查询窗口大小调整和媒体查询
- 打开/关闭模式窗口会触发窗口大小调整
- JS或jQuery或窗口大小调整或窗口宽度小于npx时
- 禁用浏览器窗口大小调整
- 单击输入字段触发器窗口大小调整
- 调整大小后,窗口大小调整事件中断切换
- jQuery - 移动元素,其子元素由窗口大小调整触发
- 如何避免由其他事件触发的多次窗口大小调整