`

window.onresize 事件笔记

    博客分类:
  • JS
JS 
阅读更多

onresize的定义方式

一、直接在html中定义

    如<body onresize="doResize()"/>

二、直接给onresize赋值

    可以给window和body的onresize赋值

    如window.onresize=function(){},document.body.onresize=function(){}

三、使用事件监听

    只对window有作用

    如window.addEventListener("resize",fn);

说明:

    1、直接给onresize赋值会覆盖在html中定义。

    2、直接给onresize赋值,window,body只有一个起作用,后定义的会覆盖先定义的

    3、事件监听只对window有效,可以其它方式同时触发。  

 

 

1.浏览器尺寸变化响应事件 :

window.onresize = function(){....}  

 

  获取变更后参数:

 

// 获取到的是变更后的页面宽度  
var currentWidth = document.body.clientWidth;   

  这里需要注意的是,onresize响应事件处理中,因为已经刷新页面,所以获取到的页面尺寸参数是变更后的参数。

 

  如果需要使用到变更之前的参数,需要建一个全局变量保存之前的参数(并且记得在onresize事件中刷新这个全局变量保存新的参数值)。

 

 

2.谷歌浏览器中  window.onresize 事件默认会执行两次(偶尔也会只执行一次,网上大部分说法认为这是Chrome的bug)。 

  解决方法:(为resize设置一个延迟)一般来说推荐新建一个标志位 延时复位控制它不让它自己执行第二次,代码如下:

 

var firstOnResizeFire = true;//谷歌浏览器onresize事件会执行2次,这里加个标志位控制  
  
window.onresize = function()  
{  
 if (firstOnResizeFire) {  
  NfLayout.tabScrollerMenuAdjust(homePageWidth);  
  firstOnResizeFire = false;  
    
  //0.5秒之后将标志位重置(Chrome的window.onresize默认执行两次)  
  setTimeout(function() {  
   firstOnResizeFire = true;  
        }, 500);  
 }  
   
 homePageWidth = document.body.clientWidth; //重新保存一下新宽度  
}  

 

 

例子:

监听屏幕的改变:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, width=device-width">
    <meta content="telephone=no" name="format-detection">
</head>
<body>
<label id="show"></label>
<script>
    window.onresize = adjuest;
    adjuest();
    function adjuest(){
       var label = document.getElementById("show");
       label.innerHTML = "width = "+window.innerWidth+";height="+window.innerHeight;
    }
</script>
</body>
</html>

 

 

效果: 
这里写图片描述

 

2 .监听div大小的改变

 

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div id="show_div" style="background-color: lightblue;width: 100%;height: 300px;"></div>
<label id="show"></label>
<script>
    window.onresize = adjuest;
    adjuest();
    function adjuest(){
        var label = document.getElementById("show");
        var divCon = document.getElementById("show_div");
        label.innerHTML = "width = "+divCon.offsetWidth+";height="+divCon.offsetHeight;
    }
</script>
</body>
</html>

 

效果: 
这里写图片描述

 

.

 

 

 

分享到:
评论

相关推荐

    【JavaScript源代码】vue使用echarts图表自适应的几种解决方案.docx

    1. **使用`window.onresize`事件** 这是最基础的实现方式,通过监听窗口的resize事件,调用ECharts的`resize()`方法来更新图表的大小。代码示例如下: ```javascript let myChart = echarts.init(document....

    div.onresize无效解决方案

    火狐下resize无效解决方案,解决火狐下资源resize事件无效问题方法

    使用JS+CSS实现DIV层自适应高度和宽度

    window.onresize = autoHeight; window.onresize = autoWidth; ``` 在上面的代码中,我们将autoHeight和autoWidth函数绑定到窗口的resize事件上,以便在窗口大小变化时更新DIV层的高度和宽度。 七、总结 在本文中...

    浅谈javascript属性onresize

    首先,我们要了解window.onresize是一个事件处理器,它能够在窗口大小发生变化时执行我们设定的函数。我们可以在该函数中编写任何自定义的代码来处理窗口尺寸的变化,比如动态调整网页布局或内容以适应新尺寸。 接...

    js动态添加onload、onresize、onscroll事件(另类方法)

    window 的 onload、onresize、onscroll 事件,跟其他的事件不一样,它不能用 attachEvent 或 addEventListener 来添加。也就是说,它只能这样来(以 onload 为例,下同): 代码如下: [removed] = function() { // ...

    JS窗口的世界.zip

    7. **事件处理**:窗口对象还支持各种浏览器事件,如`window.onresize`、`window.onunload`等,可以绑定相应的事件处理函数。 8. **历史记录管理**:`window.history`对象提供了对浏览历史的访问,`history.back()`...

    Web前端开发技术-window对象.pptx

    当用户改变浏览器窗口的大小时,会触发`window.onresize`事件。你可以通过以下方式绑定事件处理函数来响应窗口大小的变化: ```javascript // 方式1 window.onresize = function () { // 你的代码 }; // 方式2 ...

    CSS40个布局实例

    window.onresize=function(){SetWidth()}; function SetWidth(){ if(!document.getElementById) return; var w=$("gallery").offsetWidth-20; if(w&gt;0 && w!=null){ $("intro").style.width=w+"px"; $("details")....

    react-window-resize-listener:触发窗口调整大小事件时,此React组件可用于执行一些任务

    React窗口调整大小侦听器触发窗口... npm install window-resize-listener-react --save用法如果要在多个组件中侦听窗口调整大小事件并基于该事件执行某些任务,则可以在多个组件中使用它。 import React from 'react';

    JS控制网页背景随窗口大小自动适应

    - **事件监听**:通过`window.onresize`和`window.onload`两个事件来触发调整背景图尺寸的操作。 - **获取窗口尺寸**:根据不同的浏览器环境(IE与非IE)采用不同的方法获取窗口的高度和宽度。 - **更新背景图片尺寸...

    Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法

    在Vue.js中,当需要根据浏览器窗口大小动态调整组件尺寸时,可以利用JavaScript的`window.onresize`事件来实现这一功能。以下详细介绍了如何在Vue中实现这一需求: 首先,我们要明白需求:页面上的某些元素需要根据...

    js获取浏览器宽和高http://www.tiki-toki.com/

    `window.onresize`事件可以帮助我们做到这一点。你可以添加一个事件监听器来处理窗口大小的变化: ```javascript window.addEventListener('resize', function() { var newWidth = window.innerWidth; var ...

    vue终极解决多个页面Echart随页面窗口大小而改变图形大小方法

    通常,我们创建一个ECharts实例,然后调用`setOption()`设置图表配置项,接着绑定`window.onresize`事件来监听窗口大小变化并调用`resize()`方法重绘图表: ```javascript var myChart = echarts.init(document....

    IE下[removed] 多次调用与死循环bug处理方法介绍

    在本文中,我们将深入探讨一个IE浏览器特有的问题:`window.onresize`事件的多次调用与死循环bug,以及如何有效地解决这个问题。 `window.onresize`事件是JavaScript中用于监听窗口大小改变的事件。当用户调整...

    [JavaScript]解决页面onresize缩放时多次调用的问题.doc

    然而,在JavaScript中,尤其是对于老旧的IE浏览器(如IE8),直接绑定onresize事件可能导致频繁调用,甚至引起浏览器假死。这是因为每次窗口尺寸变化时,resize事件都会被立即触发,这在处理大量数据或复杂操作时尤...

    javascript窗口宽高,鼠标位置,滚动高度(详细解析).docx

    - 通过监听 `window.onresize` 事件实时更新窗口的尺寸。 #### 四、获取鼠标位置 在JavaScript中,可以通过监听鼠标事件来获取鼠标的位置: 1. **`event.clientX` 和 `event.clientY`**: - 这两个属性返回的是...

    javascript经典特效---显示页面窗口参数.rar

    7. **窗口大小改变事件**:`window.onresize` 事件可以在窗口尺寸改变时触发,常用于动态调整页面布局或元素大小。 在"显示页面窗口参数.htm"这个文件中,很可能展示了如何获取这些参数并将其展示在页面上,通过...

    javascript获得网页窗口实际大小的示例代码.docx

    同时,通过监听`window`的`onresize`事件,确保当窗口尺寸发生变化时能够及时更新这些值。 #### 四、总结 通过上述知识点的介绍和示例代码的分析,我们了解到JavaScript提供了多种方式来获取浏览器窗口的实际尺寸,...

    QQ浮动消息框源码 QQ浮动消息框源码

    在代码的开头,我们看到了`window.onload`和`window.onresize`事件处理器。`window.onload`事件在页面加载完成后触发,而`window.onresize`则在浏览器窗口大小发生变化时触发。这两个事件处理器分别调用了`...

Global site tag (gtag.js) - Google Analytics