强制窗口调整大小以触发

Gan*_*row 30 javascript

我的布局有问题,当我手动调整窗口大小并将其恢复正常时,一切都在完美的位置.

是否有可能欺骗浏览器并使用JavaScript做一些实际上会让浏览器认为页面已经重新调整大小以便我的布局看起来应该如此?

更新:

我可以重新调整大小和恢复窗口,以便用户几乎不会注意到吗?

Bil*_*Tom 73

从那以后,https : //stackoverflow.com/a/18693617/2306587发布了一个更好的解决方案:

window.dispatchEvent(new Event('resize'));
Run Code Online (Sandbox Code Playgroud)


Jos*_*ola 8

您可以像这样调整窗口大小......

window.resizeTo(width, height);
Run Code Online (Sandbox Code Playgroud)

如果你需要触发事件处理程序,你可以这样做......

window.onresize();
Run Code Online (Sandbox Code Playgroud)

  • `window.onresize()`对我不起作用:`TypeError:对象[object global]的属性'onresize'不是函数` (5认同)
  • 就像它在我的回答中所说:`window.onresize();` (2认同)

Bjö*_*örn 1

这可以通过Mootools实现(这意味着它也可以在没有框架的情况下完成),下面是一个示例:

window.addEvent('domready', function() {
 window.addEvent('resize', function() {
  alert('f');
 });
 (function() {
  window.fireEvent('resize');
 }).delay(3000);
});
Run Code Online (Sandbox Code Playgroud)

DOM 结构加载 3 秒后,将为窗口对象触发调整大小事件。

编辑;

我不知道 Mootools 如何解决调整大小事件的 fireEvent 问题。我尝试谷歌,但发现什么也没有。您当然可以手动调整窗口大小,但这确实是一个黑客:

function fireOnResizeEvent() {
 var width, height;

 if (navigator.appName.indexOf("Microsoft") != -1) {
  width  = document.body.offsetWidth;
  height = document.body.offsetHeight;
 } else {
  width  = window.outerWidth;
  height = window.outerHeight;
 }

 window.resizeTo(width - 1, height);
 window.resizeTo(width + 1, height);
}

window.onresize = function() {
 alert("Resized!");
}
Run Code Online (Sandbox Code Playgroud)