javascript之bom对象学习

一、BOM概述

BOM = Browser Object Model 浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 windowBOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA, DOM 的标准化组织是 W3C, BOM最初是Netscape 浏览器标准的一部分。

二、window 对象的常见事件

2.1、窗口加载事件

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

window.onload = function(){
    
};

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

注意:

有了window.onload就可以把JS代码写到页面元素的上方

因为onload是等页面内容全部加载完毕,再去执行处理函数

window.onload 传统注册事件方式,只能写一次

如果有多个,会以最后一个window.onload为准

如果使用addEventListener 则没有限制

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

接收两个参数:

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

如果页面的图片很多的话, 从用户访问到onload触发可能需要较长的时间

交互效果就不能实现,必然影响用户的体验,此时用 DOMContentLoaded事件比较合适。

2.1.1、区别

load等页面内容全部加载完毕,包括页面dom元素,图片,flash,css等

DOMContentLoaded 是DOM加载完毕,不包含图片 flash css 等就可以执行,加载速度比load更快一些

2.2、调整窗口大小事件

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

window.onresize = function() {}

// 或者
window.addEventListener('resize',function(){});

三、定时器

window 对象给我们提供了两个定时器

setTimeout()

setInterval()

3.1、setTimeout()定时器

setTimeout()方法用于设置一个定时器,该定时器在定时器到期后执行调用函数。

window.setTimeout(调用函数,[延迟的毫秒数]);

注意:

window可以省略
这个调用函数
可以直接写函数或者写函数名或者采取字符串 ‘函数名()’ (不推荐)
延迟的毫秒数省略默认是0,如果写,必须是毫秒
因为定时器可能有很多,所以我们经常给定时器赋值一个标识符
setTimeout() 这个调用函数我们也称为回调函数 callback
普通函数是按照代码顺序直接调用,而这个函数,需要等待事件,事件到了才会去调用这个函数,因此称为回调函数。

<body>
    <script>
        // 1. setTimeout 
        // 语法规范:  window.setTimeout(调用函数, 延时时间);
        // 1. 这个window在调用的时候可以省略
        // 2. 这个延时时间单位是毫秒 但是可以省略,如果省略默认的是0
        // 3. 这个调用函数可以直接写函数 还可以写 函数名 还有一个写法 '函数名()'
        // 4. 页面中可能有很多的定时器,我们经常给定时器加标识符 (名字)
        // setTimeout(function() {
        //     console.log('时间到了');

        // }, 2000);
        function callback() {
            console.log('爆炸了');

        }
        var timer1 = setTimeout(callback, 3000);
        var timer2 = setTimeout(callback, 5000);
        // setTimeout('callback()', 3000); // 我们不提倡这个写法
    </script>
</body>

3.2、clearTimeout()停止定时器

clearTimeout()方法取消了先前通过调用 setTimeout()建立的定时器

window.clearTimeout(timeoutID)

3.3、setInterval()定时器

setInterval()方法重复调用一个函数,每隔这个时间,就去调用一次回调函数

window可以省略

这个回调函数:可以直接写函数或者写函数名或者采取字符 ‘函数名()’

window.setInterval(回调函数,[间隔的毫秒数]);

3.4、clearInterval()停止定时器

clearInterval ( ) 方法取消了先前通过调用 setInterval() 建立的定时器

注意

window可以省略

里面的参数就是定时器的标识符

<body>
    <button class="begin">开启定时器</button>
    <button class="stop">停止定时器</button>
    <script>
        var begin = document.querySelector('.begin');
        var stop = document.querySelector('.stop');
        var timer = null; // 全局变量  null是一个空对象
        begin.addEventListener('click', function() {
            timer = setInterval(function() {
                console.log('ni hao ma');

            }, 1000);
        })
        stop.addEventListener('click', function() {
            clearInterval(timer);
        })
    </script>
</body>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值