JavaScript 中的 onresize 事件通常在窗口大小发生变化时触发。要获取窗口的大小,我们可以使用 JavaScript 的 window.outerWidthwindow.outerHeight 事件。我们还可以使用 JavaScript 的属性,例如 innerWidth, innerHeight, clientWidth, ClientHeight, offsetWidth, offsetHeight,来获取元素的大小。

在 HTML 中,我们可以使用 onresize 属性并将一个 JavaScript 函数分配给它。我们还可以使用 JavaScript 的 addEventListener() 方法,将一个 resize 事件传递给它以获得更大的灵活性。

语法

接下来,我们来看一下在 HTML 中和在 javascript中使用 onresize 事件的语法(不使用 addEventListener() 方法或使用 addEventListener() 方法)。

在 HTML 中

<element onresize = "fun()">

在 JavaScript 中

object.onresize = function() { myScript };

在 JavaScript 中使用 addEventListener() 方法

object.addEventListener("resize", myScript);

让我们通过一些示例来理解 onresize 事件。

示例

在此示例中,我们使用了 HTML 的 onresize 属性。在这里,我们使用 JavaScript 的 window.outerWidthwindow.outerHeight 事件来获取窗口的高度和宽度。

当用户调整窗口大小时,屏幕上会显示更新后的窗口宽度和高度。它还会显示用户尝试调整窗口大小的次数。当我们改变窗口的高度时,更新后的高度也会相应更改。类似地,当我们改变窗口的宽度时,更新后的宽度也会相应更改。

<!DOCTYPE html>
<html>
<head>
<script>
var i = 0;
function fun() {
  var res = "Width = " + window.outerWidth + "<br>" + "Height = " + window.outerHeight;
  document.getElementById("para").innerHTML = res;
  
  var res1 = i += 1;
  document.getElementById("s1").innerHTML = res1;
}
</script>
</head>
<body onresize="fun()">
<h3>This is an example of using onresize attribute.</h3>
<p>Try to resize the browser's window to see the effect.</p>
<p id="para"></p>
<p>You have resized the window <span id="s1">0</span> times.</p>
</body>
</html>

解释:

  1. 定义一个计数器变量 i
  2. 定义 fun() 函数,其中获取窗口的宽度和高度,并显示在页面上。还将计数器变量的值递增,显示在页面上。
  3. <body> 元素的 onresize 属性中,指定要在窗口大小调整时执行的函数。

输出

在代码执行并加载页面后,输出如下图所示:

1.png

当我们尝试调整窗口大小时,输出将如下图所示:

2.png

示例 - 使用 JavaScript

在这个示例中,我们使用了 JavaScript 的 onresize 事件。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h3>This is an example of using JavaScript's onresize event.</h3>
<p>Try to resize the browser's window to see the effect.</p>
<p id="para"></p>
<p>You have resized the window <span id="s1">0</span> times.</p>
<script>
document.getElementsByTagName("BODY")[0].onresize = function() {fun()};
var i = 0;

function fun() {
  var res = "Width = " + window.outerWidth + "<br>" + "Height = " + window.outerHeight;
  document.getElementById("para").innerHTML = res;
  
  var res1 = i += 1;
  document.getElementById("s1").innerHTML = res1;
}
</script>
</body>
</html>

解释:

  1. 使用 getElementsByTagName("BODY")[0].onresize 设置页面加载时要执行的函数为 fun() 函数。
  2. 定义计数器变量 i
  3. 定义 fun() 函数,其中获取窗口的宽度和高度,并显示在页面上。还将计数器变量的值递增,显示在页面上。

输出

在代码执行并加载页面后,输出如下图所示:

3.png

当我们尝试调整窗口大小时,输出将如下图所示:

4.png

示例 - 使用 addEventListener() 方法

在这个示例中,我们使用了 JavaScript 的 addEventListener() 方法。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h3>This is an example of using JavaScript's addEventListener() method.</h3>
<p>Try to resize the browser's window to see the effect.</p>
<p id="para"></p>
<p>You have resized the window <span id="s1">0</span> times.</p>
<script>
window.addEventListener("resize", fun);
var i = 0;

function fun() {
  var res = "Width = " + window.outerWidth + "<br>" + "Height = " + window.outerHeight;
  document.getElementById("para").innerHTML = res;
  
  var res1 = i += 1;
  document.getElementById("s1").innerHTML = res1;
}
</script>
</body>
</html>

解释:

  1. 使用 window.addEventListener("resize", fun) 添加一个监听器,监听 resize 事件,并在事件触发时执行 fun() 函数。
  2. 定义计数器变量 i
  3. 定义 fun() 函数,其中获取窗口的宽度和高度,并显示在页面上。还将计数器变量的值递增,显示在页面上。

输出

在代码执行并加载页面后,输出如下图所示:

5.png

标签: js, JavaScript, JavaScript语言, JavaScript开发, JavaScript语法, JavaScript脚本, JavaScript教程, JavaScript入门, JavaScript入门教程, JavaScript进阶, JavaScript宝典, JavaScript学习, JavaScript指南, JavaScript大全