Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测窗口';s尺寸变化_Javascript_Html - Fatal编程技术网

Javascript 检测窗口';s尺寸变化

Javascript 检测窗口';s尺寸变化,javascript,html,Javascript,Html,我想知道窗户什么时候变大。 我找到了这篇文章,当我调整窗口大小时,它会工作,但如果我点击全屏按钮,或者如果我使用快捷方式“窗口”+“向上”/“窗口”+“左”等,它就不会工作。 事实上,当窗口从一个大小传递到另一个大小而没有转换时,它不会检测窗口是否调整大小 有可能检测到吗?谢谢 目前我有: var addEvent = function(object, type, callback) { if (object == null || typeof(object) == 'undefined

我想知道窗户什么时候变大。 我找到了这篇文章,当我调整窗口大小时,它会工作,但如果我点击全屏按钮,或者如果我使用快捷方式
“窗口”+“向上”
/
“窗口”+“左”
等,它就不会工作。 事实上,当窗口从一个大小传递到另一个大小而没有转换时,它不会检测窗口是否调整大小

有可能检测到吗?谢谢

目前我有:

var addEvent = function(object, type, callback) {
    if (object == null || typeof(object) == 'undefined') return;
    if (object.addEventListener) {
        object.addEventListener(type, callback, false);
    } else if (object.attachEvent) {
        object.attachEvent("on" + type, callback);
    } else {
        object["on"+type] = callback;
    }
};
let this2 = this;
addEvent(window, "resize", function(event) {
    this2.prepareAnimation();
});

我知道的唯一方法是window.onresize,关于键盘快捷键,对我来说它工作得很好,使用您指定的所有调整大小的快捷键,我只是用这个来看看它是否工作,是的,我不知道,可能是您的浏览器

 window.onresize=function(e){
     console.log(e);
 }

这将在每次调整浏览器窗口大小时触发该函数。我已经证实,这适用于macOS和Windows版本的Chrome,包括Windows最大化/最小化、“Windows按钮”+“向上”等。

在实际项目中,始终使用
addEventListener
而不是
onEvenetName

基本示例如下所示:

window.addEventListener("resize", function () {
console.log('Resize')
});
但是!Resize事件触发很多次,您不希望每次都运行事件侦听器,因为这是浏览器的一个大性能问题

你可以阅读更多关于

如果您使用lodash,您已经具有以下功能:

window.addEventListener("resize", _.debounce(function () {
console.log('Resize')
}), 200);

在第二个示例中,resize事件仅在上次调用resize事件200毫秒后触发

你确定吗?应在窗户尺寸变化(包括最大化)时点火。请在问题中添加代码,以便我们了解可能出现的问题。就目前而言,您的问题是离题的,因为它太宽泛,缺乏足够的细节来回答。您的代码运行良好,我只是替换了
this2.prepareAnimation()console.log()
现在的问题是,你期望发生的事情没有发生并不意味着事件没有发生我的猜测是它与调整代码大小无关,但是
这个
FYI的上下文,addEvent方法真的不需要,除非你真的针对非常旧的浏览器。
window.addEventListener("resize", _.debounce(function () {
console.log('Resize')
}), 200);