当前位置: 首页 > 面试题库 >

如何在JavaScript中触发窗口调整大小事件?

阙庆
2023-03-14
问题内容

我已经在窗口调整大小上注册了一个触发器。我想知道如何触发事件被调用。例如,当隐藏一个div时,我希望调用触发函数。

我发现window.resizeTo()可以触发该功能,但是还有其他解决方案吗?


问题答案:

在可能的情况下,我更喜欢调用函数而不是调度事件。如果您可以控制要运行的代码,则此方法效果很好,但是如果您不拥有该代码,请参见下文。

window.onresize = doALoadOfStuff;

function doALoadOfStuff() {
    //do a load of stuff
}

在此示例中,您可以在doALoadOfStuff不调度事件的情况下调用该函数。

在现代浏览器中,您可以使用以下方法触发事件:

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

在Internet Explorer中,这是行不通的,您必须进行长期操作:

var resizeEvent = window.document.createEvent('UIEvents'); 
resizeEvent.initUIEvent('resize', true, false, window, 0); 
window.dispatchEvent(resizeEvent);

jQuery具有triggermethod,其工作方式如下:

$(window).trigger('resize');

并警告:

尽管.trigger()模拟了一个事件激活,并完成了一个综合事件对象,但它不能完美地复制自然发生的事件。

您还可以模拟特定元素上的事件…

function simulateClick(id) {
  var event = new MouseEvent('click', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });

  var elem = document.getElementById(id);

  return elem.dispatchEvent(event);
}


 类似资料:
  • 问题内容: 如何挂接到浏览器窗口调整大小事件? 有一种jQuery侦听调整大小事件的方法,但我不希望仅出于这一要求就将其引入我的项目中。 问题答案: jQuery只是包装了标准的DOM事件,例如。 jQuery 可以 做一些工作来确保在所有浏览器中一致地触发resize事件,但是我不确定任何浏览器是否有所不同,但是我建议您在Firefox,Safari和IE中进行测试。

  • 问题内容: 我正在使用Java编写一个简单的绘画程序,并且每当调整JFrame组件的大小时,我都希望调用某种方法。但是我找不到像windowResizedListener之类的任何方法或诸如windowResizedEvent之类的事件。我能做什么?! 问题答案: 实现一个具有:

  • 我正在制作一个用于分发的JS/PHP插件。我希望它像这样容易安装: 但是,我希望这个插件附加一个窗口调整大小侦听器,而不重写,以防有任何其他脚本也需要使用该方法。是否有类似的javascript命令?我知道这不是问题,因为这不起作用,而且MDN和W3C对于采用什么参数非常模糊。 我不想要一个回答告诉我使用或,因为这些插件不友好。

  • 我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。

  • 问题内容: 我想基于窗口重新调整大小事件(在加载和动态运行)执行一些任务。 目前,我的DOM如下: 该事件正确触发 如何从此事件对象中检索宽度和高度? 谢谢。 问题答案:

  • 窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re