JS监听窗口变化及获取页面大小


今天做页面兼容的时候突然遇到这个问题,就简单写写;

监听页面大小改变主要注意两方面,一个是初始化的时候,另一个是页面大小改变的时候重新设置;

一、页面初始化

// 初始化加载数据
window.onload = function () {
  // 监听窗口变化
  windowHiegh();
}

二、页面大小改变时

// 监听页面窗口变化
window.onresize = function () {
  windowHiegh();
}

下面是计算的方法:

// 页面窗口高度计算
function windowHiegh() {
  // 初始化加载高度
  let InitRightHeight = parseFloat($(".right").height());

  // margin区域高度
  let logMarginHeight = parseFloat($(".logical").css("marginBottom"));  // 逻辑门外边距
  let algMarginHeight = parseFloat($(".alg-rules").css("marginBottom"));  // 运算法则外边距
  // 实际高度
  let rightHeight = InitRightHeight - logMarginHeight - algMarginHeight;

  // 逻辑门高度
  let logicalInHeight = rightHeight * 0.12;
  $(".logical").css("height", "" + logicalInHeight + "px");
  let iconsHeight = $(".logical").height() - $(".logical-title").outerHeight(true);
  $(".icons").css("height", "" + iconsHeight + "px")

  // 运算法则高度
  let alg_rulesHeight = rightHeight * 0.25;
  $(".alg-rules").css("height", "" + alg_rulesHeight + "px");
  let rules_boxeHeight = $(".alg-rules").height() - $(".rules-title").height() - $(".alg-rules-search").height();
  $("#rules-box").css("height", "" + rules_boxeHeight + "px")

  // 参数高度
  let argumentsHeight = rightHeight * 0.63;
  $(".arguments").css("height", "" + argumentsHeight + "px");
  let agruments_contentHeight = $(".arguments").height() - $(".arguments-titile").height();
  $(".agruments-content").css("height", "" + agruments_contentHeight + "px")

  let dataHeight = agruments_contentHeight;
  let data_boxHeight = $(".data").height() - $(".data-search").height()
  $(".data-box").css("height", "" + data_boxHeight + "px")

}

大致思路:

一、页面分为三个部分,上中下
二、先获取页面总高度,然后每个部分按照百分比进行计算
三、盒子设置 box-sizing属性,用来计算的实际高度 = 页面总高度 - 盒子外部总 margin;
四、单个区域的高度 = 实际高度 * 百分比
五、单个区域内部变化高度 = 单个区域高度 - 单个区域内部固定高度

大致思路是这样的,有问题的地方欢迎大佬们指正,代码是自己实际的项目,就没有写简单的例子了

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
监听页面宽度变化,可以使用以下方法之一。首先,可以使用window对象的resize事件来监听页面大小变化。通过添加resize事件监听器,当页面大小发生变化时,可以执行相应的操作。例如,可以使用以下代码来监听页面宽度的变化并输出宽度值: ```javascript window.addEventListener('resize', () => { const width = document.documentElement.clientWidth; console.log('页面宽度发生了变化', `宽度:${width}`); }); ``` 另外,也可以使用window对象的onresize属性来监听页面大小变化。通过设置onresize属性为一个函数,当页面大小发生变化时,该函数会被调用。例如,可以使用以下代码来监听页面宽度的变化并输出宽度值: ```javascript window.onresize = function() { const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; console.log('页面宽度发生了变化', `宽度:${width}`); }; ``` 以上两种方法都可以实现对页面宽度变化监听。具体使用哪种方法取决于个人的偏好和需求。 #### 引用[.reference_title] - *1* [js监听页面大小变化](https://blog.csdn.net/Boale_H/article/details/130595671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [利用原生JSJS监听窗口变化获取窗口大小](https://blog.csdn.net/weixin_41575159/article/details/105989924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值