一、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. java多线程(4)---volatile关键字

    volatile关键字 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的 ...

  2. springboot+mybatis+dubbo+aop日志第一篇

    本篇文章主要讲述项目搭建过程,不会涉及过多的基础知识,本项目是作者对前段时间学习的一个总结,主要使用到技术有:maven父子工程.springboot.mybatis.dubbo.zookeeper. ...

  3. leetcode — remove-duplicates-from-sorted-list

    /** * Source : https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/ * * * Given a so ...

  4. 15分钟在阿里云Kubernetes服务上快速建立Jenkins X Platform并运用GitOps管理应用发布

    本文主要介绍如何在阿里云容器服务Kubernetes上快速安装部署Jenkins X Platform并结合demo实践演示GitOps的操作流程. 注意:本文中使用的jx工具.cloud-envir ...

  5. 【Angular专题】——(1)Angular,孤傲的变革者

    目录 一. 漫谈Angular 二. 如果你还在使用Angularjs 三. 我计划这样学习Angular技术栈 一. 漫谈Angular Angular,来自Google的前端SPA框架,与Reac ...

  6. IOS中armv7,armv7s,arm64以及i386和x86_64讲解

    一.前言问题 在iOS 开发过程中,估计比较少的人会在意armv7,armv7s,arm64这些概念,如果在意可能也是项目中出现了像下面的问题,才会想起来解决这些问题,但还是不是特别的理解,这些概念, ...

  7. 字符串string 、byte[]、MemoryStream、Base64String的相互转换

    1.字符串转比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert ...

  8. 杭电ACM2013--蟠桃记

    蟠桃记 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  9. JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象

        JQuery提供了一个对象遍历的Utility方法$.each()和一个JQuery集合遍历方法.each(). $.each()     $.each()是一个通用的方法用来遍历对象和数组, ...

  10. C# 定时器-System.Timers.Timer

    using Newtonsoft.Json; using Rafy; using Rafy.Domain; using System; using System.Collections.Generic ...