我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript之BOM构成和常用事件详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript之BOM构成和常用事件详解

一、BOM

1、什么是BOM?

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

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

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

2、BOM的构成

如下图所示:

在这里插入图片描述

window 对象是浏览器的顶级对象,它具有双重角色。

它既是 JS 访问浏览器窗口的一个接口。又是一个全局对象。定义在全局作用域中的变量、函数都会变成 window 对象的属性和方法。

在调用的时候可以省略 window,alert()、prompt()等都属于 window 对象方法。

我们可以调用window对象来看看其有哪些属性和方法。

如下所示:


console.log(window);

截取部分如下所示:

在这里插入图片描述

可见,定义在全局作用域中的变量、函数都会变成 window 对象的属性和方法。

二、window对象的常用事件

1、窗口加载事件

我们知道在javascript的执行机制中,代码的执行是按照从上往下的顺序执行的,所以如果我们要给一个按钮添加点击事件,只能先设置按钮,然后获得按钮在进行操作,如下:


<body>
    <button>点击</button>
    <script>
        var btn = document.querySelector('button');
        btn.onclick = function(){
            alert('您刚点击了一下!')
        }
    </script>
</body>

点击效果为:

在这里插入图片描述

如果我们想要把绑定的点击事件放置到页面前面,很明显是无法操作的。那应该怎么办呢?这个时候就可以通过我们的窗口加载事件来完成。

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


window.onload = function(){}
//或者 
window.addEventListener("load",function(){});

如上例:


<body>
    <script>
        window.onload = function(){
            var btn = document.querySelector('button');
        btn.onclick = function(){
            alert('您刚点击了一下!')
        }
        }
    </script>
    <button>点击</button>
</body>

这个时候也可以实现点击效果。

在这里插入图片描述

需要注意的是:

1.有了 window.onload 就可以把 JS 代码写到页面元素的上方,因为 onload是等页面内容全部加载完毕,再去执行处理函数。

2.window.onload 传统注册事件方式 只能写一次,如果有多个,会以最后一个 window.onload 为准。

3.如果使用 addEventListener 则没有限制。

如果此时我们还有一个点击事件,想要将它的操作放到元素前面呢?

来操作试试:


 <script>
        window.onload = function(){
            var btn = document.querySelector('button');
        btn.onclick = function(){
            alert('您又点击了一下!')
        }
    }
        window.onload = function(){
           alert('你好')
        }
    </script>
    <button>点击</button>
</body>

打印结果如何呢?

在这里插入图片描述

可以发现,第一个事件会被第二个事件覆盖,这是,我们可以另一种方式来操作,如下:


document.addEventListener('DOMContentLoaded',function(){})

代码为:


 <script>
        document.addEventListener('DOMContentLoaded',function(){
            var btn = document.querySelector('button');
            btn.onclick = function(){
                alert('您又点击了一下!')
            }
            alert('你好呀')
        })
    </script>
    <button>点击</button>
</body>

运行结果为:

在这里插入图片描述

DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash等等。这种方法Ie9以上才支持,如果页面的图片很多的话, 从用户访问到onload触发可能需要较长的时间, 交互效果就不能实现,必然影响用户的体验,此时用 DOMContentLoaded事件比较合适。

2、调整窗口大小事件

在很多网站上,我们会发现,当我们改变窗口大小时,里面的内容也会随之改变,这又是怎样做到的呢?这里就要用到我们的调整窗口大小事件。

其格式为:


//(1)
window.onresize = function(){}
//(2)
window.addEventListener("resize",function(){});

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

举个例子:

页面中有一个盒子,当我们的页面宽度小于800px时,让这个盒子的颜色变成紫色。


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div></div>
   <script>
       div = document.querySelector('div')
       window.onresize = function(){
           console.log(window.innerWidth);
           if(window.innerWidth <= 800){
               div.style.backgroundColor = 'green';
           }
       }
   </script>
</body>
</html>

打印结果为:

在这里插入图片描述

同样的我们也可以通过window.addEventListener("resize",function(){})来进行上述操作,这里不在赘述。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript之BOM构成和常用事件详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

javascript页面内容完成时触发此事件使用什么函数,详细讲解

DOMContentLoaded事件在网页内容加载完成后触发,用于处理页面交互代码。该事件比load事件更早触发,在页面元素加载完毕但外部资源尚未完成下载时触发。使用DOMContentLoaded事件可以避免内容闪烁,提高性能,简化代码维护。其使用语法为:document.addEventListener("DOMContentLoaded",function(){/代码/}),在现代浏览器中得到广泛支持。
javascript页面内容完成时触发此事件使用什么函数,详细讲解
2024-04-02

javascript当数据接收完成时触发事件使用什么函数,详细讲解

当数据传输完成并被接收时,JavaScript中有load事件用于触发操作。load事件在以下情况下触发:图像、视频或音频文件传输完成,DOM元素加载完成,或窗口或框架加载完成。它的语法为element.addEventListener("load",function(){...})。开发者可以使用load事件来确保数据加载后再执行操作,避免错误。此外,还有progress、error和abort等相关事件函数可用于处理数据接收。
javascript当数据接收完成时触发事件使用什么函数,详细讲解
2024-04-02

javascript当对象的属性之一发生变化时触发此事件使用什么函数,详细讲解

JavaScript中可以通过Object.defineProperty()函数监听对象属性的更改。该函数允许定义自定义属性描述符,包括get和set函数。当属性发生更改时,这些函数被调用,触发自定义事件。通过使用this关键字,可以访问对象属性和方法。确保指定get和set函数,否则将使用默认行为。
javascript当对象的属性之一发生变化时触发此事件使用什么函数,详细讲解
2024-04-02

javascript当Marquee元素完成需要显示的内容后触发此事件使用什么函数,详细讲解

当Marquee元素完成滚动其内容时,JavaScript中的onfinish函数会触发事件。onfinish事件可以在Marquee元素完成循环或到达指定的最大迭代次数时触发。通过将onfinish事件处理程序分配给元素或使用addEventListener方法,可以检测事件并执行各种操作,例如停止滚动、修改样式或触发其他事件。需要注意的是,onfinish事件仅在Marquee元素水平滚动时触发,且在behavior属性设置为"slide"时不会触发。
javascript当Marquee元素完成需要显示的内容后触发此事件使用什么函数,详细讲解
2024-04-02

javascript当数据完成由数据源到对象的传送时触发此事件使用什么函数,详细讲解

JavaScript中,当数据加载完成时会触发特定事件,用于执行后续操作。这些事件包括:onload:页面或元素加载完成时触发。XMLHttpRequest.onload:XHR请求成功完成时触发。fetch().then():fetch()请求成功完成时触发。这些事件和方法使开发人员能够在数据加载完成后立即进行处理,从而提高Web应用程序的响应性和用户体验。
javascript当数据完成由数据源到对象的传送时触发此事件使用什么函数,详细讲解
2024-04-02

javascript在Marquee内的内容移动至Marquee显示范围之外时触发此事件使用什么函数,详细讲解

当鼠标指针移出Marquee元素时,触发onmouseout事件,可执行特定行为。onmouseout事件语法为,其中myFunction()为回调函数。常用做法是利用onmouseout事件在Marquee内容移动至显示范围之外时采取措施,如停止滚动、隐藏Marquee或更改滚动方向。示例中通过onmouseout事件停止Marquee滚动:。当鼠标移出Marquee,将执行回调函数this.stop(),调用Marquee元素的stop()方法,停止滚动。
javascript在Marquee内的内容移动至Marquee显示范围之外时触发此事件使用什么函数,详细讲解
2024-04-02

javascript当元素失去鼠标移动所形成的选择焦点时触发此事件使用什么函数,详细讲解

JavaScript中,当元素失去鼠标焦点时触发blur事件。此事件常用于验证输入、自动完成和工具提示。通过element.addEventListener("blur",function())监听该事件,传入的回调函数可处理失去焦点时的操作,如验证输入内容。相关事件包括focus(获取焦点)、focusin(焦点移入元素)、focusout(焦点移出元素),可用于创建丰富交互的界面。
javascript当元素失去鼠标移动所形成的选择焦点时触发此事件使用什么函数,详细讲解
2024-04-02

编程热搜

目录