JS-BOM

什么是BOM(Browser Object Model)

  • 浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window.

 

 窗口加载事件

  • document.addEventListener('DOMContentLoaded',function() { } )
  • DOMContentLoaded事件触发时,仅当DOM加载完成,不包括样式表,图片,flash等等。
  • Ie9以上才支持。 
  • window.onload = function() { }  或者
  • window.addEventListener("load",functioan() { } );
  • 有了window.onload就可以把JS代码写到页面元素的上方,因为onload是等页面内容全部加载完毕再去处理函数
  • window.onload传统注册事件方式只能写一次,如果有多个,会以最后一个window.onload为准
  • 如果使用addEventListener 则没有限制

区别:

  1. load 等页面内容全部加载完毕,包含页面dom元素 图片 flash css 等等
  2. DOMContentLoaded 是DOM 加载完毕 ,不包含图片、flash css 等就可以执行,加载速度比load更 快一些

 调整窗口大小事件

  • window.onresize = function() { }     
  • window.addEventListener("resize",function() { });

注意:

  1. 只要窗口大小发生像素变化,就会触发这个事件
  2. 我们经常利用这个事件完成响应式布局。window.innerWidth当前屏幕的宽度 

定时器 

  • setTimeout() 
  • setInterval()

两种定时器的区别 :

  1. setTimeout 延时时间到了,就去调用这个回调函数,只调用一次 就结束这个定时器
  2. setInterval  每隔这个延时时间,就去调用这个回调函数, 一直重复调用这个函数
  3. 其他语法规则都一样,以下说明第一个的语法规范和使用方法

setTimeout()定时器

  • window.setTimeout(回调函数, [延迟的毫秒数]);   window在调用时可以省略
  • setTimeout()方法用于设置一个定时器 ,该定时器在定时器到期后执行调用函数。也叫回调函数
  • 延迟时间省略默认是0
  • 两种用法如下:

  setTimeout(function () {
   console.log("敲代码是一件很快乐的事情");
 }, 1000);

function callback() {
  console.log("今天也好好好敲代
}
setTimeout(callback, 3000);

 停止定时器clearTimeout()

  • window.clearTimeout(定时器的名字);

 location对象的属性

location对象属性返回值
location.href获取或者设置 整个URL
location.host返回主机(域名)www.itheima.com
location.port返回端口号 如果未写返回空字符串
location.pathname返回路径
location.search返回参数
location.hash返回片段 #后面内容 常见于锚点链接

 location 对象的方法

location对象方法返回值
location.assign()跟href一样,可以跳转页面(重定向)
location.replace()替换当前页面,因为不记录历史,所以不能后退页面
location.reload()重新加载页面,相当于刷新按钮或者f5如果参数为true强制刷新Ctrl+f5

 history对象

history对象方法作用
back()后退功能
forward()前进功能
go(参数)前进后退功能 参数如果是1 前进一个页面,-1后退一个页面

dom0和dom2的区别 

  • dom0:同一个事件只执行一次

  • dom2:同一个事件可以监听多次

 同一个事件父子级会进行传递,由子级传给父级称之为冒泡;由父级向子级传递称之为捕获。

e.stopPropagation();阻止冒泡

e.preventDefault();阻止默认

委托模式 

  • 当子级较多是,可以将这个事件添加给父级,通过事件对象的target属性来找到发生动作的子级
     <body>
        <button>1</button>
        <button>2</button>
        <button>3</button>
        <button>4</button>
        <button>5</button>
        <script>
          //1.
          // var btns = document.getElementsByTagName("button");
          // for (var i = 0; i < btns.length; i++) {
          //   btns[i].index = i;
          //   btns[i].onclick = function () {
          //     console.log(this.index);
          //   };
          // }
          //2.委托模式
          var body = document.querySelector("body");
          body.onclick = function (e) {
            console.log(e.target);
          };
        </script>
      </body>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值