DOM文档对象模型(思维导图版)

今天我们一起用思维导图帮大家梳理一下DOM文档对象模型的知识点,来看一看吧!

dom文档对象模型

一、节点类型

1. document 文档类型

document节点

  • documemtElement属性 始终指向页面中的<html>元素
document.documentElement==document.childNodes[1]
// chrome浏览器将doctype作为第一个子节点

多个选择器叠加

<p class="mysection active"></p>
document.querySelector('.mysection.active');//不加空格,空格表示后代选择器
documnet.getElementsByClassName('mydiv active'); 
// IE9+ 支持,空格指的是类名的分隔符,不是后代选择器

焦点管理

  • document.activeElement属性,返回获取焦点的元素.默认返回body元素,如果在文档加载过程中可能返回null。
  • document.hasFocus()方法,用来确定文档是否获取焦点。返回true/false
  • focus()方法,使元素获取焦点
2. element 元素类型

element节点

特性的获取、设置、删除方法

  1. getAttribute(‘特性名’); 获取特性。可以获取自定义属性。获取没有设置属性值的属性 或 不存在的属性时,返回null
    getAttribute(‘style’);返回style特性值中包含的css文本
    dom.style;返回一个对象
  2. setAttribute(‘特性名’,‘特性值’); 设置特性,存在替换,不存在添加。可以设置自定义属性
  3. removeAttribute(‘特性名’);移除特性 mydiv.className=’’;//清空特性class的值
3. attr 特性类型

attr节点
bug:IE7attributes属性会打印所有属性,而不是只打印符合条件的元素
解决:if(mydiv.attributes[i].specified==true){//specified解决IE的问题}

4. text 文本类型

text节点
bug: 创建后添加的文本,和原来的原本是两个文本节点,不符合原有文本样式
解决:使用元素的normalize()方法 规范化文本,合并为一个文本节点

二、节点的属性和方法

节点的属性和方法

firstChild.nodeName.toLowerCase() == 'h1'//判断firstChild是否是h1标签

childNodes,firstChild,lastChild:获取的子节点中包含空的文本节点。
children,childElementCount,firstElementChild,lastElementChild,获取元素子节点,不包含空文本节点。

三、操作节点

操作节点

四、事件处理程序

IE 事件冒泡流(子元素->父元素);Netscape是事件捕获流(父元素->子元素 )
浏览器中大部分事件都是冒泡事件流 div->body->html->document

事件处理程序

五、事件对象

事件对象

六、事件类型

1. 用户界面类型

用户界面类型

2. 焦点事件

焦点事件

3. 鼠标事件

鼠标事件
使用键盘tab键可以获取焦点 回车,只响应点击事件,不响应按下抬起事件。
响应顺序:mousedown->mouseup->click 都可以冒泡

滚轮事件

  • mousewheel事件 鼠标滚轮事件 鼠标拖动滑块使页面滚动 不能触发
  • event.wheelDelta //向上滑动:180 向下滑动:-180
  • 火狐:DOMMouseScroll事件;event.detail 向上滚动:-3; 向下滚动:3
4. 键盘和文本事件

键盘事件

	event.shiftKey //是否同时按下 shift键
	event.ctrlKey //是否同时按下 ctrl键
	event.altKey //是否同时按下 alt键
	event.metaKey//是否同时按下 window键

补充

偏移量 只读
  1. offsetHeight=边框+内边距+width
  2. offsetWidth=边框+内边距+height
  3. offsetTop=与父元素的上边距;上边框和页面顶端的距离,如果有定位,返回与最近有定位的父元素的距离
  4. offsetLeft=与父元素的左边距
  5. offsetParent属性,返回值:dom元素的基准父元素 默认是body,除非给定位
浏览器窗口的可视大小
  1. document.documentElement.clientHeight
  2. document.documentElement.clientWidth
  3. 随着窗口的变化而改变
元素内部空间的大小 client 不带边框
  1. clientHeight: 不涉及滚动条时,clientHeight=offsetHeight-边框
  2. clientWidth: 不涉及滚动条时,clientWidth=offsetWidth-边框
  3. 页面可见区域宽: document.body.clientWidth;
  4. 页面可见区域高: document.body.clientHeight;
滚动大小
  1. scrollHeight: 没有滚动条时=clientHeight
  2. scrollWidth:没有滚动条时=clientWidth
  3. scrollLeft: 滚动条向左滚动的大小
  4. scrollTop:滚动条向上滚动的大小 IE7及以下 document.body.scrollTop
    • 为style.top 赋值时,scrollTop的值也会改变
    • document 或 window 触发
    • document.documentElement.scrollTop获取窗口滚动条向上滚动的大小
  5. scrollIntoView(false);参数:true(默认):元素和页面顶对齐; false:元素和页面底对齐

今天的分享就到这里啦,文中若有不当之处,若能多多指出,不胜感激~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值