强制窗口调整大小以触发

时间:2009-12-07 16:28:36

标签: javascript

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

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

更新:

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

6 个答案:

答案 0 :(得分:71)

此后,https://stackoverflow.com/a/18693617/2306587已发布了更好的解决方案:

window.dispatchEvent(new Event('resize'));

答案 1 :(得分:8)

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

window.resizeTo(width, height);

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

window.onresize();

答案 2 :(得分:4)

您可以使用jQuery resize()方法,如下所示:

$(window).resize();

答案 3 :(得分:0)

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

window.addEvent('domready', function() {
 window.addEvent('resize', function() {
  alert('f');
 });
 (function() {
  window.fireEvent('resize');
 }).delay(3000);
});

加载DOM结构3秒后,将为窗口对象触发resize-event。

修改;

我不知道Mootools如何为resize事件解决他们的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!");
}

答案 4 :(得分:0)

以下是可行的解决方案:

com.github.cloudyrock.mongock

答案 5 :(得分:-2)

在需要重绘的区域上切换显示属性。例如:

var toDraw = document.getElementById('redrawme');
toDraw.style.display = none;
toDraw.style.display = '';

我不知道如果你试图做整个身体因素,结果会是因为我以前从未厌倦过它。

你在做什么,你需要强制重绘?