JavaScript宿主对象之BOM和DOM

宿主对象(host object),即由ECMAScript实现的宿主环境提供的对象。

宿主对象的表现形式,即浏览器window的子对象和node.jsglobal的子对象。

DOM(文档对象模型)BOM(浏览器对象模型)属于宿主对象。

也就是说,DOM和BOM是编程接口,我们可以获取到一些列属性方法,用于操作HTML文档和浏览器



一、BOM

BOM封装了一系列浏览器,相关的属性和方法。

其中较为重要属性有Window(浏览器打开的窗口)Navigator(浏览器相关信息)Screen(客户端显示屏幕)History(访问过的URL)Location(URL信息)

重要的几个高度:

    • screen.height:显示器高度,单位为px。
    • screen.availHeight:显示器高度除去Windows系统的任务栏高度。(说明:水平方向没有任务栏,screen.width === screen.availHeight)。
    • window.innerHeight:浏览器窗口视口(viewport)的高度,单位为px,如果存在水平滚动条,则包含它。
    • window.outerHeight:整个浏览器的高度,单位为px,包含侧边栏,窗口嵌边和窗口调整边框。
    • element.clientHeigt:元素内部高度,单位为px,包含content和padding不包括水平滚动条、边框和外边距
    • element.ScrollHeight(元素实际高度),element.OffsetHeight(元素的内容区,border、margin、scrollBar),ScrollTop(元素距容器顶部距离)

  



二、DOM

HTML文档的数据结构,是

那么,对HTML文档的操作,其实就是对树和树的节点的操作

不同的节点对应着元素(element)属性(attribute)注释(commet)文本(text)

对节点的基本操作,包含增加(insert)删除(remove)检索(find)更改(update)

继而衍生出来的操作,例如复制(clone),其实就是检索节点(find node)-->复制节点(clone node)-->增加节点(insert node)-->其他操作(other operate)。‘



三、事件

  事件的三要素是事件源事件驱动程序

  事件流的三个阶段包括:

    1. 事件捕获阶段
    2. 处于目标阶段
    3. 事件冒泡阶段

  事件的绑定方式为:

    1. 行内绑定
    2. 动态绑定
    3. 事件监听


四、拖拽    

  所需要的事件

    1. mousedown
    2. mousemove
    3. mouseup
    4. mouseenter

  实现思路

    1. 鼠标按下时,记录鼠标位置距离移动元素的距离。
    2. 鼠标移动时,实时更新元素位置。
    3. 鼠标放开时,完成元素位移。

  需要获取的距离

    1. 元素所在坐标(element.offsetLeft和element.offsetTop)
    2. 鼠标所在的坐标(pageX或者clientX + body.scrollLeft - body.clientLeft)

  细节处理

    1. 边界判断
    2. 消抖问题
    3. 减少事件触发次数(事件委托)

原文地址:https://www.cnblogs.com/bearRunning/p/12217236.html

时间: 2024-09-28 17:18:14

JavaScript宿主对象之BOM和DOM的相关文章

JavaScript(核心、BOM、DOM)

http://www.flyne.org/article/407 JavaScript(核心.BOM.DOM) JavaScript是基于对象和事件驱动的客户端脚本语言.有如下特点: 交互性 安全性(不可以直接访问本地硬盘) 跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关) 1.JavaScript和Java不同! ①所属:NetScape和Sun ②基于对象和面向对象 ③JS可以直接解析执行,Java需先编译在运行 ④JavaScript是一种弱类型的语言,Java是强类型的语言.

JavaScript 参考手册——javascript本地和内置对象、BOM、DOM

本部分提供完整的 JavaScript 参考手册: JavaScript 本地对象和内置对象 Browser 对象(BOM) HTML DOM 对象 JavaScript 对象参考手册 本参考手册描述每个对象的属性和方法,并提供实例. Array Boolean Date Math Number String RegExp Global Browser 对象参考手册 本参考手册描述每个对象的属性和方法,并提供实例. Window Navigator Screen History Location

javascript宿主对象之window.location

location属性是一个用来存储当前页面URL信息的对象. 下面我们通过循环来列出location对象的完整属性列表: for(var i in location){ if(typeof location[i] == 'string'){ console.log( i + ' = "' + location[i] + ' " '); } } 下面来看一下: 另外,location对象还提供了三种方法:分别是: 1. reload(); 2. assign(); 3. replace(

javascript宿主对象之window.frames

window.frames属性是当前页面所有框架的集合.要注意的事,这里并没有frame和iframe做出区分.而且,无论页面存不存在框架,window.frames属性总是存在的,并总是指向window对象本身. window.frames === window; // true; 假设我们页面中有一个iframe元素: <iframe name="myframe" src="hello.html"/> 我们可以通过检查其length属性来了解页面中是

css样式的部分拓展, NuMber对象、 BoM、 DoM对象的模型的间述,ing...

css部分代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title></title> 6 <style type="text/css"> 7 div{ 8 width: 300px; 9 height: 400px; 10 margin:100px auto; 11 position: rel

javascript宿主对象之window.navigator

window.navigator用来反映浏览器及其功能信息的对象. // 检测浏览器版本信息 function getBrowserInfo(){ var Sys = {}; var ua = window.navigator.userAgent.toLowerCase(); var re =/(msie|firefox|chrome|opera|version).*?([\d.]+)/; var m = ua.match(re); Sys.browser = m[1].replace(/ver

javascript宿主对象之window.screen、window.close()/open()、window.moveTo、window.resizeTo

window.screen属性所提供的是浏览器以外的信息.这里只简单的概述一下: screen.availWidth - 可用的屏幕宽度 (除去操作系统菜单) screen.availHeight - 可用的屏幕高度(除去操作系统菜单) screen.width - 总分辨率宽度 screen.height - 总分辨率高度 window.open属性是一个我们打开新窗口的方法,主要接收一下参数: 1. 要载入窗口的URL 2. 新窗口的名字,用于新窗口form标签的taeget属性: 3. 以

javascript宿主对象之window.history

window.historys属性允许我们操作同一个浏览器回话中的已访问页面,例如我们可以看到在这之前我们浏览页面的数量: window.history.length 由于隐私保护,我们无法获取这些页面具体的URL,像下面这样是不被允许的: window.history[0] 但是我们可以在当前用户会话中的页面之间进行来回切换,就像您在浏览器中单击后退,前进一样. history.forward(); // 前进 history.back(); // 返回 另外,我们可以用history.go(

JavaScript学习总结(三)BOM和DOM详解

转自:http://segmentfault.com/a/1190000000654274 DOM介绍 D(文档)可以理解为整个Web加载的网页文档,O(对象)可以理解为类似window对象只来的东西,可以调用属性和方法,这里我们说的是document对象,M(模型)可以理解为网页文档的树形结构,DOM树由节点构成 节点种类:元素节点.文本节点和属性节点 DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API).DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网