美文网首页JavaScript
7.BOM的构成、顶级对象window:页面(窗口)加载事件-调

7.BOM的构成、顶级对象window:页面(窗口)加载事件-调

作者: 蔚完待旭 | 来源:发表于2020-06-18 12:22 被阅读0次

    BOM

    什么是BOM

    ​ BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。

    ​ BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。

    ​ BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA,DOM 的标准化组织是 W3C,BOM 最初是Netscape 浏览器标准的一部分。


    BOM的构成

    BOM 比 DOM 更大,它包含 DOM。

    顶级对象window

    1

    window对象的常见事件

    页面(窗口)加载事件(2种)

    第1种

    window.onload 是窗口 (页面)加载事件,当文档内容完全加载完成会触发该事件(包括图像、脚本文件、CSS 文件等), 就调用的处理函数。

    第2种

    ​ DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash等等。

    ​ IE9以上才支持!!!

    ​ 如果页面的图片很多的话, 从用户访问到onload触发可能需要较长的时间, 交互效果就不能实现,必然影响用户的体验,此时用 DOMContentLoaded 事件比较合适。

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            // window.onload = function() {
            //     var btn = document.querySelector('button');
            //     btn.addEventListener('click', function() {
            //         alert('点击我');
            //     })
            // }
            // window.onload = function() {
            //     alert(22);
            // }
            window.addEventListener('load', function() {
                var btn = document.querySelector('button');
                btn.addEventListener('click', function() {
                    alert('点击我');
                })
            })
            window.addEventListener('load', function() {
    
                alert(22);
            })
            document.addEventListener('DOMContentLoaded', function() {
                    alert(33);
                })
                // load 等页面内容全部加载完毕,包含页面dom元素 图片 flash  css 等等
                // DOMContentLoaded 是DOM 加载完毕,不包含图片 falsh css 等就可以执行 加载速度比 load更快一些
        </script>
    </head>
    
    <body>
    
        <button>点击</button>
    
    </body>
    
    

    调整窗口大小事件

    ​ window.onresize 是调整窗口大小加载事件, 当触发时就调用的处理函数。

    注意:

    1. 只要窗口大小发生像素变化,就会触发这个事件。

    2. 我们经常利用这个事件完成响应式布局。 window.innerWidth 当前屏幕的宽度

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            div {
                width: 200px;
                height: 200px;
                background-color: pink;
            }
        </style>
    </head>
    <body>
        <script>
            // 注册页面加载事件
            window.addEventListener('load', function() {
                var div = document.querySelector('div');
                // 注册调整窗口大小事件
                window.addEventListener('resize', function() {
                    // window.innerWidth 获取窗口大小
                    console.log('变化了');
                    if (window.innerWidth <= 800) {
                        div.style.display = 'none';
                    } else {
                        div.style.display = 'block';
                    }
                })
            })
        </script>
        <div></div>
    </body>
    

    相关文章

      网友评论

        本文标题:7.BOM的构成、顶级对象window:页面(窗口)加载事件-调

        本文链接:https://www.haomeiwen.com/subject/vitgohtx.html