主要内容:

1、BOM输出

2、BOM的对象

3、client的相关属性

4、offset的相关属性

5、scroll的相关属性

前情提要: 何谓BOM?

  所谓 BOM 指的就是浏览器对象模型 Browser Object Model,它的核心就是浏览器。

一、BOM输出

  主要输出方式有以下几种:

  

 

二、BOM的对象

  1、open和close方法 --- 打开和关闭网页的几种方法:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>open_close方法</title>
</head>
<body>
<!--open打开方法-->
<button onclick="window.open('https://www.cnblogs.com/schut/')">暮光微凉</button> <button onclick="openHtml()">点击打开</button> <button>打开博客</button> <!--close关闭方法,不需要参数,直接关闭当前网页-->
<button onclick="window.close()">关闭页面</button> <button>关闭页面</button> </body>
<script type="text/javascript">
// open方法
function openHtml(){
window.open("https://www.cnblogs.com/schut/")
} var openBtn = document.getElementsByTagName('button')[2];
openBtn.onclick = function(){
// open('https://www.cnblogs.com/schut/') // 此处window可省略
open('about:blank',"_self") // 打开一个空页面
} // close方法
var closeBtn = document.getElementsByTagName('button')[4];
closeBtn.onclick = function(){
if(confirm('是否确认关闭?')){
close();
}
}
</script>
</html>

  2、BOM的其他对象方法 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>BOM的其他对象</title>
</head>
<body> </body>
<script type="text/javascript">
// 返回浏览器的用户设备信息
console.log(window.navigator.userAgent); // location方法
console.log(window.location);
window.location.href = 'https://www.cnblogs.com/schut/'; //全局刷新(尽量少用) ===》 局部刷新
// window.location.reload(); // 不间断全局刷新
setTimeout(function(){
window.location.reload();
},3000) // 每隔3秒刷新一次
</script>
</html>

三、client的相关属性

  1、client的相关属性有如下几个: 

clientTop        上边框的高度

clientLeft        左侧边框的宽度

clientWidth      内容区域+左右padding(即可视宽度)

clientHeight      内容区域+上下padding(即可视高度)

  实例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>client相关属性解读</title>
<style type="text/css">
*{
padding:0;
margin:0;
}
.box{
width:200px;
height:150px;
margin:30px 10px;
position:absolute;
border:5px solid royalblue;
padding:10px 20px; }
</style>
</head>
<body>
<div class="box"> </div>
</body>
<script type="text/javascript">
var Box = document.getElementsByClassName('box')[0]; console.log(Box.clientTop) // 5 对应上边框的高度
console.log(Box.clientLeft) // 5 对应左侧边框的宽度
console.log(Box.clientWidth) // 240 内容区域+左右padding 可视宽度
console.log(Box.clientHeight) // 170 内容区域+上下padding 可视高度
</script>
</html>

  2、屏幕的可视区域

    注意:此处的屏幕可视区域指的是浏览器中页面内容的可视区。

  实例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>屏幕的可视区域</title>
</head>
<body> </body>
<script type="text/javascript">
window.onload = function () {
// onload表示加载
console.log("屏幕可视宽度:",document.documentElement.clientWidth);
console.log("屏幕可视高度:",document.documentElement.clientHeight);
} window.onresize = function () {
// 实时显示屏幕可视区域大小
console.log("屏幕实时可视宽度:",document.documentElement.clientWidth);
console.log("屏幕实时可视高度:",document.documentElement.clientHeight);
}
</script>
</html>

四、offset的相关属性

  offset的相关属性有以下几个: 

offsetTop :如果盒子没有设置定位,到浏览器的顶部距离;设置定位后,以父盒子的位置为基准

offsetLeft :如果盒子没有设置定位,到浏览器的左部距离;设置定位后,以父盒子的位置为基准

offsetWidth:内容+padding+border

offsetHeight:内容+padding+border

  实例:  

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>offset系列</title>
<style type="text/css">
#box1{
position:relative; // 设置定位
background-color: #b3d7ff;
}
#box2{
width:200px;
height:200px;
border:1px solid green;
padding:10px;
margin:10px;
position:absolute; // 设置定位
background-color: #b1dfbb;
}
</style>
</head>
<body>
<div id="box1">
<div id="box2"> </div>
</div>
</body>
<script type="text/javascript">
window.onload = function(){
var box = document.getElementById('box2');
console.log(box.offsetTop); // 未设置定位:10 设置定位后 :10
console.log(box.offsetLeft); // 未设置定位:18 设置定位后 :10
console.log(box.offsetWidth);// 未设置定位:222 设置定位后 :222
console.log(box.offsetHeight);// 未设置定位:222 设置定位后 :222 }
</script>
</html>

五、scroll相关属性

  scroll 的相关属性有以下几个:  

scrollTop        距离浏览器内容区顶端的距离

scrollLeft        距离浏览器内容区左端的距离

scrollWidth        内容的宽度+padding(注意:不包含边框)

scrollHeight        内容的高度+padding(注意:不包含边框)

  实例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>scroll系列</title>
<style type="text/css">
*{
padding:0;
margin:0;
} </style>
</head>
<body>
<div style="width:100%;height:1200px;">
<div style="height:200px;background-color: palevioletred;"></div>
<div style="height:200px;background-color: orange;"></div>
<div style="height:200px;background-color: gold;"></div>
<div style="height:200px;background-color: greenyellow;"></div>
<div style="height:200px;background-color: cornflowerblue;"></div> <div id='scroll' style="height:150px;width:300px;border:3px solid mediumspringgreen;overflow: auto">
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
<p>我是一个小标签</p>
</div>
</div>
</body>
<script type="text/javascript">
window.onload = function(){
// 实施监听滚动事件
window.onscroll= function(){
// 浏览器页面的滚动监听
console.log('------------------------------------');
console.log("上"+document.documentElement.scrollTop);
console.log("左"+document.documentElement.scrollLeft);
console.log("宽"+document.documentElement.scrollWidth);
console.log("高"+document.documentElement.scrollHeight);
} // 盒子内容滚动监听
var s = document.getElementById('scroll');
s.onscroll = function(){
// scrollHeight:内容的高度+padding(注意:不包含边框)
console.log('----------------------');
console.log('上'+s.scrollTop);
console.log('左'+s.scrollLeft);
console.log('宽'+s.scrollWidth);
console.log('高'+s.scrollHeight);
}
}
</script>
</html>

回顶部↑

前端开发之javascript BOM篇的更多相关文章

  1. 前端开发之JavaScript基础篇一

    主要内容: 1.JavaScript介绍 2.JavaScript的引入方法和输出及注释 3.javaScript变量和命名规则 4.五种基本数据类型 5.运算符 6.字符串处理 7.数据类型转换   ...

  2. 前端开发之JavaScript基础篇三

    主要内容: 1.创建对象的几种方式 2.JavaScript内置对象 3.JavaScript错误--Throw.Try 和 Catch 4.JavaScript 表单验证 一.创建对象的几种方式 1 ...

  3. 前端开发之JavaScript基础篇四

    主要内容: 1.定时器 2.正则表达式入门 3.元字符 4.正则表达式实战运用 一.定时器 javaScript里主要使用两种定时器,分别是:setInterval()和setTimeout(). 1 ...

  4. 前端开发之JavaScript基础篇二

    主要内容: 1.流程控制条件语句和switch语句 2.for循环和while循环 3.Break语句和Continue语句 4.数组和数组常用方法 5.函数 6.对象 一.流程控制条件语句和swit ...

  5. 前端开发之JavaScript篇

    一.JavaScript介绍  前端三剑客之JavaScript,简称js,可能是这三个里面最难的一个了.很早以前,市面上流通着三种js版本,为了统一,ECMA(欧洲计算机制造协会)定义了规范的版本, ...

  6. 前端开发之JavaScript HTML DOM实战篇

    实战案例一: “灯泡发光” <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  7. 前端开发之JavaScript HTML DOM理论篇二

    主要内容: 1.HTML DOM元素 2.HTML DOM事件 一.DOM元素 主要操作有添加.删除和替换HTML元素 1.创建新的HTML元素  (1)方法一: appendChild() 追加 如 ...

  8. 前端开发之JavaScript HTML DOM理论篇一

    主要内容: 1.DOM简介 2.DOM 节点 3.DOM 方法和属性 4.DOM 访问和修改 一.DOM简介 1.什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTM ...

  9. 前端开发之JavaScript

    JavaScript JS是一种脚本语言,浏览器执行,用于渲染HTML网页,实现网页的动画效果. JavaScript的引用方式: 1,在HTML文件中script标签中写JS代码 <scrip ...

随机推荐

  1. 在后台new出页面(组件)

    Page p = new Page();            Control u = p.LoadControl("~/folderName/controlName.ascx") ...

  2. shell监控网卡状态,故障时自动重启网卡

      今天朋友找我写个监控网卡状态的脚本,要求在系统网卡挂了可以自己启动起来,这个要求是不是很bt,我考虑了半天,简单的写了个shell脚本来监控,实现原理是使用ping来测试网络连通性,如果不通就重启 ...

  3. Docker容器编排器概览

    就像Apple推出iPhone让智能手机变成主流,Docker让容器变成了主流.自从项目发布以来,Docker着重于提升开发者的体验.基本理念是可以在整个行业中,在一个标准的框架上,构建.交付并且运行 ...

  4. Go语言学习笔记 package

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 strings import "strings" strings包实现了用于操作字符的简单函数 ...

  5. MySQL Join算法与调优白皮书(二)

    Index Nested-Loop Join   (接上篇)由于访问的是辅助索引,如果查询需要访问聚集索引上的列,那么必要需要进行回表取数据,看似每条记录只是多了一次回表操作,但这才是INLJ算法最大 ...

  6. 为什么要用webUI?

    先看看身边有哪些软件已经在用webUI: 1.QQ查找窗口: 2.LOL主界面: 3.EC营销软件功能界面: 三个例子足以说明一切: 1.HTML是目前在用户体验.界面舒适度最先进的语言 2.HTML ...

  7. Java中static关键字介绍

    static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 具体而言,在Java语言中,static ...

  8. PHP中的traits简单理解

    Traits可以理解为一组能被不同的类都能调用到的方法集合,但Traits不是类!不能被实例化.先来例子看下语法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...

  9. 第一个 Windows 界面程序

    编译器 使用的编译器为 Visual Studio 2017 菜单栏 -> 文件 -> 新建 -> 项目 选择 Windows 桌面应用程序,然后填好相关信息后点击“确定” 在解决方 ...

  10. django之全文检索

    全文检索 全文检索不同于特定字段的模糊查询,使用全文检索的效率更高,并且能够对于中文进行分词处理 haystack:django的一个包,可以方便地对model里面的内容进行索引.搜索,设计为支持wh ...