在窗口调整大小的innerWidth / innerHeight之前和之后?

时间:2014-07-23 18:49:06

标签: javascript jquery

我有一个看起来像的事件监听器:

window.addEventListener("resize", function(data){
    console.log(data);
    // Do something
});

在上面的回调函数中,是否有人在调整innerWidth / innerHeight之前调整大小?我在上面的代码中浏览了data对象,但没有找到任何内容。

3 个答案:

答案 0 :(得分:1)

每次发生浏览器调整大小事件时,我都会保存旧的宽度值。代码如下:

var initialWidth = window.innerWidth;

window.addEventListener("resize", function(){
    // Do something with 'initialWidth'
    initialWidth = window.innerWidth;
});

在上面,我在页面加载时保存浏览器宽度。然后,每次调整浏览器大小时,我都会在回调函数结束时保存新的浏览器宽度。

答案 1 :(得分:0)

你不能,你必须在某些变量中存储以前的高度/宽度。只需将其放在页面加载的变量中,然后就可以在此方法中访问它。没有像bofore调整大小的东西。 read this

答案 2 :(得分:0)

只需添加内容即可跟踪上一个resize事件值:

var windowSize = (function () {
  var lastWidth = 0, lastHeight = 0;

  window.addEventListener('resize', function (data) {
    // do something with last values
    ...
    console.log(lastWidth);
    console.log(lastHeight);
    ...

    lastWidth = window.innerWidth;
    lastHeight = window.innerHeight;
  });

  return { width: lastWidth, height: lastHeight };
})();

现在,您可以使用闭包外部的windowSize对象来查找当前窗口大小是什么,并且在更新lastWidth之前,您可以在闭包内部对窗口的先前大小进行操作。 lastHeight

希望这有帮助!