一、client系列:宽高边框

二、offset系列:偏移

三、scroll系列

四、BOM的介绍

4.1.打开新窗口

4.2.location对象(本地信息对象)

4.3.history对象

4.4刷新

五、定时器的相关使用

-------------------------------------------------------

一、client系列:宽高边框

clientTop:上边框宽度
clientLeft:左边框的宽度
clientWidth: 盒子(例如div等)的宽度,包括内容+padding
clientHeight:盒子(例如div等)的高度,包括内容+padding

获取屏幕的可视宽高:就是HTML的宽高
如果对屏幕进行缩放,这个计算结果也会变化
document.documentElement.clientWidth;
document.documentElement.clientHeight;

//窗口大小发生变化,会触发该事件。可以在事件里计算宽高
window.onresize=function(){
  console.log(document.documentElement.clientWidth);
  console.log(document.documentElement.clientHeight);
}

二、offset系列:偏移

offsetWidth:内容宽度+padding+border
offsetHeight:内容高度+padding+border
offsetTop:如果没有设置定位,到body顶部距离。如果设置定位,以父辈为基准的top值
offsetLeft:如果没有设置定位,到body左边距离。如果设置定位,以父辈为基准的left值

三、scroll系列

scrollTop: 浏览器页面卷起的高度
scrollLeft:
scrollWidth:内容+padding+border
scrollHeight:

滚动的时候触发事件:
window.onscroll=function(){

}

四、BOM的介绍

浏览器对象模型;前进,后退,打开标签页等
window下是浏览器对象,window是BOM和DOM的顶层对象

window
                 ------------------------------------------------------
                 |      |          |            |           |               |
BOM-------| frames history location navigator screen
                 |
                 |-----------------------------------------------------                 
                 |
DOM---document

4.1.打开新窗口

//默认在新窗口打开,写__self是在当前页打开,window可以省略
window.open("www.abc.com","__self")

4.2.location对象(本地信息对象)

console.log(window.location);
-------------------------
localhost:8070/code/BOM/02-location.html
-------------------------
hash:""
host:"localhost:8070"
hostname:"localhost"
href:"localhost:8070/code/BOM/02-location.html"
origin:"localhost:8070/code/BOM/02-location.html"
pathname:"/code/BOM/02-location.html"
port:8070
protocol:"http"
search:?wd=%E%B7.......(地址后面的查询条件)

3.5秒后跳转到www.abc.com

setTimeout(function(){
  location.href='www.abc.com';
},5000)

4.3.history对象

前进后退的时候使用history对象

//给点击“前进”的按钮添加事件
$('forward').onclick=function(){
  window.history.go(1);
}
//给点击“后退”的按钮添加事件
$('back').onclick=function(){
window.history.go(-1);}

4.4刷新

$('refresh').onclick=function(){
//这两个不常用,因为是全局刷新。局部刷新用ajax
window.history.go(0);
  window.location.reload();
}

五、定时器的相关使用

一次性定时器:setTimeout(fn,2000)
循环定时器:setInterval(fn,1000)每一秒走一步,周期性循环,每一秒做的是同样的事情

//一次性定时器,不阻塞,先跑完,过两秒再执行里面的函数
//应用:如果对于数据的请求出现数据阻塞的问题,可以考虑使用一次性定时器
//来执行异步操作
console.log('开始');
setTimeout(function(){console.log('走到尽头了');},2000)
console.log(2222); //开始 2222 (过2秒) 走到尽头了
---

//循环定时器
setInterval(function(){num++;console.log(num);},1000); //间隔一秒打印1,2,3...

注意:用定时器的时候先清除定时器,再开定时器,这样不会有bug
clearInterval(定时器对象); //清除循环定时器
clearTimeout(定时器对象); //清除一次性定时器

JS第三部分--BOM浏览器对象模型的更多相关文章

  1. 第一百一十一节,JavaScript,BOM浏览器对象模型

    JavaScript,BOM浏览器对象模型 学习要点: 1.window对象 2.location对象 3.history对象 BOM也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM ...

  2. JavaScript——BOM(浏览器对象模型),时间间隔和暂停

    BOM(浏览器对象模型):能够对浏览器的窗体进行訪问和操作 1.主要的BOM体系: window------------document-------------------------------- ...

  3. js BOM浏览器对象模型

    BOM即Browser Object Model,浏览器对象模型,表示浏览器窗口,所有js全局对象.函数以及变量均是window 对象的成员. 对于不同的浏览器,表示宽度和高度的方法不同: 对于IE9 ...

  4. JavaScirpt(JS)——BOM浏览器对象模型

    一.BOM概念 BOM(Browser Object Model)即浏览器对象模型.可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关 ...

  5. JavaScript(二、BOM 浏览器对象模型)

    一.BOM是什么 BOM是browser object model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心 ...

  6. BOM浏览器对象模型

    访问和操作浏览器窗口的模型称为浏览器对象模型BOM(Browser Object Model). BOM整体对象图. 核心是window对象: 以下有特殊双重身份: window对象既是ECMAScr ...

  7. BOM—浏览器对象模型(Browser Object Model)

     1,javascript   组成部分: 1.ECMAscript(核心标准):    定义了基本的语法,比如:if for 数组 字符串 ... 2.BOM  : 浏览器对象模型(Browser ...

  8. BOM——浏览器对象模型(Browser Object Model)

    什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...

  9. javascript之BOM浏览器对象模型引入

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 编译安装mysql5.7.24踩的坑

    1.报错如下:CMake Error at cmake/boost.cmake:76 (MESSAGE):  You can download it with -DDOWNLOAD_BOOST=1 - ...

  2. AspNetCore 使用log4net+IExceptionFilter 记录错误日志

    错误日志的好处我就不说了,大家都心里有数,那今天浩子就给大家说一说基本的错误日志吧这次通过log4net记录日志. 原来写过一个关于Nlog的日志框架,传送门为:https://www.cnblogs ...

  3. qt集成dsoframer.ocx打开office办公软件

    最近一段时间真是事情太多了,前不久项目中一个嵌入office软件的问题,由于没有时间研究,且项目的需求是浏览word文档,偷了一个懒,把word文档转换成pdf文档,然后嵌入libcef浏览器给打开了 ...

  4. 懵逼的this指向

    请看以下代码: 以上的console.log打印出来的,如果你能完全知道,请忽略,如果你不知道,那就接下来看吧. console.log打印的结果: Google非常智能地把对象给打印出来了,看结果, ...

  5. SignalR学习笔记(四) 性能优化

    限制消息发送次数 这种方式在学习笔记(二)-  高并发应用中介绍过,在客户端和服务器端使用定时器来减少消息发送的次数 减少消息数据的大小 服务器端,可以使用JsonIgnore, 来忽略不需要序列化的 ...

  6. mongodb~mapreduce的实现特殊逻辑的统计

    map reduce的解释 这是一张来自mongodb-mapreduce图示,比较能说明问题

  7. 从0打卡leetcode之day 6--最长回文串

    题目描述 给定一个字符串 s,找到 s中最长的回文子串.你可以假设 s 的最大长度为1000. 示例1 输入: "babad" 输出: "bab" 注意: &q ...

  8. Python中dunder名称的来历

    版权声明:博客为作者原创,允许转载,但必须注明原文地址:https://www.cnblogs.com/byronxie/p/10741084.html 在 Python 中,我们经常会看到被双下划线 ...

  9. Ansible快速上手

    ansible 是通过python 语言开发的自动化运维工具,可以实现批量系统设置.批量程序部署.批量执行命令等功能 下面是基于docker使用ansible测试示例,可以让新手快速上手使用 一.新建 ...

  10. demo_3

    ## 控制器层 需求分析: 访问路径:`/user/reg.do`请求参数:`username=xx&password=xx&&phone=xx&email=xx`请求 ...