无忧资源站

 找回密码
 加入我们
查看: 2106|回复: 0

[html] JavaScript监听浏览器窗口大小变化

[复制链接]

17

主题

30

帖子

197

积分

学徒

Rank: 2

积分
197
发表于 2023-7-6 00:11:14 | 显示全部楼层 |阅读模式
  1. 以下是一个完整且高效的 JavaScript 代码示例,用于监听浏览器窗口大小的变化

  2. ```javascript
  3. // 定义一个变量来保存窗口大小改变的回调函数
  4. let resizeCallback;

  5. // 创建一个函数来处理窗口大小改变事件
  6. function handleResize() {
  7.   // 检查回调函数是否存在并且是一个函数
  8.   if (typeof resizeCallback === 'function') {
  9.     // 调用回调函数,并传入当前窗口的宽度和高度作为参数
  10.     resizeCallback(window.innerWidth, window.innerHeight);
  11.   }
  12. }

  13. // 创建一个函数来添加或更新窗口大小改变的回调函数
  14. function addResizeListener(callback) {
  15.   // 将回调函数赋值给 resizeCallback 变量
  16.   resizeCallback = callback;

  17.   // 使用 addEventListener 方法来监听窗口大小改变事件
  18.   window.addEventListener('resize', handleResize);
  19. }

  20. // 创建一个函数来移除窗口大小改变的回调函数
  21. function removeResizeListener() {
  22.   // 将 resizeCallback 变量设置为 null
  23.   resizeCallback = null;

  24.   // 使用 removeEventListener 方法来移除窗口大小改变事件的监听
  25.   window.removeEventListener('resize', handleResize);
  26. }
  27. ```

  28. 使用示例:

  29. ```javascript
  30. // 定义一个回调函数来处理窗口大小改变事件
  31. function handleWindowResize(width, height) {
  32.   console.log('窗口大小改变了:', width, height);
  33. }

  34. // 添加窗口大小改变的监听器,并传入回调函数
  35. addResizeListener(handleWindowResize);

  36. // 移除窗口大小改变的监听器
  37. removeResizeListener();
  38. ```

  39. 在上面的示例中,我们定义了一个 `addResizeListener` 函数来添加窗口大小改变的监听器,并传入一个回调函数作为参数。当窗口大小改变时,回调函数将被调用,并传入当前窗口的宽度和高度作为参数。我们还提供了一个 `removeResizeListener` 函数来移除窗口大小改变的监听器。

  40. 请注意,这个代码示例使用了 `window.innerWidth` 和 `window.innerHeight` 属性来获取窗口的宽度和高度。这些属性返回的是窗口的内部宽度和高度,不包括滚动条和边框的宽度和高度。如果你需要考虑滚动条和边框的宽度和高度,可以使用 `window.outerWidth` 和 `window.outerHeight` 属性。
复制代码


QQ|SiteMap|Map|小黑屋|无忧资源站

GMT+8, 2024-5-19 17:31 , Processed in 0.059098 second(s), 19 queries .

无忧资源站

Copyright © 2022-2032 www.wyzyz.net

快速回复 返回顶部 返回列表