我有一个看起来像的事件监听器:
window.addEventListener("resize", function(data){
console.log(data);
// Do something
});
在上面的回调函数中,是否有人在调整innerWidth
/ innerHeight
之前调整大小?我在上面的代码中浏览了data
对象,但没有找到任何内容。
答案 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
。
希望这有帮助!