美文网首页
BOM --浏览器对象模型

BOM --浏览器对象模型

作者: 卓小生 | 来源:发表于2016-10-30 14:57 被阅读0次

BOM

BOM(Browser Object Model) 是指浏览器对象模型,是用于描述这种对象与对象之间层次关系的模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象

window

BOM 的核心是window对象,它表示浏览器的一个实例。在浏览器中,即是javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这就意味着在网页中定义的任意变量、函数、对象都是以window作为Global对象。

所有在全局作用域中声明的变量、函数、对象都会作为window的属性和方法

var age = 24;

function printName(){
    console.log(age);
}


console.log(window.age);
window.printName();

window对象属性

window.innerHeight属性,window.innerWidth属性

这两个属性返回网页的CSS布局占据的浏览器窗口的高度和宽度,单位为像素。很显然,当用户放大网页的时候(比如将网页从100%的大小放大为200%),这两个属性会变小。

注意,这两个属性值包括滚动条的高度和宽度。

scrollX、scrollY

  • scrollX:滚动条横向偏移
  • scrollY:滚动条纵向偏移

这两个值随着滚动位置变化而变化

scrollTo、scroll scrollBy、

我们也可以通过方法scrollTo或者scroll方法改变滚动条位置到指定坐标

scrollTo、scroll效果是一样的

window.scrollTo(0, 300); // 滚动条移动到300px处

两个参数分别是水平、垂直方向偏移

scrollBy可以相对当前位置移动滚动条,而不是移动到绝对位置

scrollBy(0, 100); // 滚动条下移100px

navigator

Window对象的navigator属性,指向一个包含浏览器相关信息的对象。

navigator.userAgent属性返回浏览器的User-Agent字符串,用来标示浏览器的种类。下面是Chrome浏览器的User-Agent。

navigator.userAgent // "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36"

screen

screen对象包含了显示设备的信息

// 显示设备的高度,单位为像素
screen.height
// 1920

// 显示设备的宽度,单位为像素
screen.width
// 1080

一般使用以上两个属性,了解设备的分辨率。上面代码显示,某设备的分辨率是1920x1080。除非调整显示器的分辨率,否则这两个值可以看作常量,不会发生变化。显示器的分辨率与浏览器设置无关,缩放网页并不会改变分辨率。

window.open(url)

打开一个新窗口, 参数是新窗口需要载入的url地址

window.open('http://www.baidu.com')

如果不传参数,则打开的是空白窗口

window.open();

返回值 返回的新开页面的window对象

var opener = window.open();

opener.document.body.style.background = 'red';

并且可以通过它的close方法将它关闭

opner.close()

window 相关的事件

onscroll onresize

//onscroll : 当滚动条滚动的时候触发
var i = 0;

window.onscroll = function() {
    document.title = i++;
}

//onresize : 当窗口大小发生变化的时候触发
window.onresize = function() {
    document.title = i++;
}

练习: 回到顶部

窗口尺寸与大小

窗口可视区尺寸

document.documentElement.clientWidth
document.documentElement.clientHeight

document.documentElement 相当与 document.getElementsByTagName('html')[0]
也就是html元素

element.clientHeight = width + padding

但是对于html元素,它的表现有点不同,它代表了窗口的大小

窗口的滚动距离

Element.scrollTop

可以设置或者获取一个元素距离他容器顶部的像素距离(也就是滚动条滚动距离)

在chrome中, 窗口的滚动距离为:

document.body.scrollTop/scrollLeft chrome中认为窗口的滚动条是属于body的

在体浏览器中,窗口的滚动距离为:

document.documentElement.scrollTop/scrollLeft chrome中认为窗口的滚动条是属于html的

document.onclick = function(){

    //chrome中
    alert(document.body.scrollTop);

    //其他浏览器中
    alert(document.documentElement.scrollTop);
}

窗口的内容高度

document.body.scrollHeight

element.scrollHeight

是计量元素内容高度的只读属性,包括overflow样式属性导致的视图中不可见内容

<div id="wrapper">
    <div></div>
</div>

<style>
#wrapper{
    width:100px;
    height:100px;
    padding: 10px;
    border: 1px solid red; 
    overflow: hidden; 
}

#wrapper>div{
    height: 600px;
    width: 90px; 
    background: red;
}
</style>

<script>
var oDiv = document.getElementById('wrapper');
alert(oDiv.scrollHeight);//620 = 600+10*2 (10为wrapper的padding);
</script>

相关文章

  • BOM

    BOM 浏览器对象模型 BOM(Browser Object Model)是指浏览器对象模型,浏览器对象模型提供来...

  • JavaScript Window - 浏览器对象模型(9/11

    浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。 浏览器对象模型 (BOM) 浏览器...

  • 1 js之window

    浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话” 1 浏览器对象模型 (BOM)浏览器...

  • BOM概述

    BOM 概述 1. BOM(浏览器模型) Browser Object Moder浏览器对象模型 什么是BOM ?...

  • 前端浏览器对象模型BOM常用对象用法介绍

    前端浏览器对象模型BOM常用对象介绍,BOM即Broswer Object Model 浏览器对象模型,在Java...

  • JavaScript之操纵BOM对象(重点)

    六、操作BOM对象(重点) 目录:操作BOM对象BOM:浏览器对象模型 1.操作BOM对象 1)浏览器介绍Java...

  • 复习笔记之API(9) BOM浏览器对象模型

    BOM浏览器对象模型 BOM(Browser Object Module)概述:浏览器对象模型,它提供了独立于内容...

  • BOM模型

    BOM模型 浏览器对象模型(Browser Object Model),BOM对象是JavaScript的核心,该...

  • DOM和BOM

    BOM 介绍 BOM:browser object model浏览器对象模型,用对象操作浏览器 window对象是...

  • BOM

    BOM的概念 BOM指浏览器对象模型,BOM由多个对象组成,其中代表浏览器窗口的window对象是BOM的顶层对象...

网友评论

      本文标题:BOM --浏览器对象模型

      本文链接:https://www.haomeiwen.com/subject/wehuuttx.html