我想知道窗口大小何时发生变化。
我找到了这篇文章JavaScript window resize event,它在我调整窗口大小时有效,但如果我点击全屏按钮,或者我使用快捷方式"Window" + "Left"
/ 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();
});
等,则无效。
事实上,当窗口从一个大小传递到另一个大小而没有转换时,它不会检测窗口是否调整大小
有可能检测到吗?感谢
目前我已经:
Dim fromDate As Date, toDate As Date
fromDate = DateSerial(2018, month, 1)
toDate = DateSerial(2018, month + 1, 1)
Debug.Print fromDate, toDate
答案 0 :(得分:1)
window.onresize = function () {
// Do stuff
}
这应该在每次浏览器窗口调整大小时触发该功能。我已经确认这适用于MacOS和Windows版本的Chrome,包括Windows最大化/最小化," Windows Button" +" Up"等
答案 1 :(得分:0)
在现实生活中,项目始终使用addEventListener
而不是onEvenetName
。
基本示例如下所示:
window.addEventListener("resize", function () {
console.log('Resize')
});
BUT! Resize事件会大量激活,您不希望每次都运行事件侦听器,因为这对浏览器来说是一个很大的性能问题。
您可以阅读有关Debouncing and Throttling here.
的更多信息如果您使用lodash,您已经拥有以下功能:
window.addEventListener("resize", _.debounce(function () {
console.log('Resize')
}), 200);
在第二个示例中,resize事件仅在调用最后一个resize事件后200ms触发。
答案 2 :(得分:-1)
我知道的唯一方法是window.onresize,关于键盘快捷键,对我来说它工作正常,你指定的所有调整大小的快捷方式,我只是用它来查看它是否正常工作,是的,它是,我不知道,也许是你的浏览器
window.onresize=function(e){
console.log(e);
}