前端学习day50 to day54:2-JS页面交互之DOM与BOM

1.节点类型

        ⑴childNodes:获取一个元素的所有子节点

        ⑵节点类型:DOM包含了多种节点,我们通常获取的标签,只是节点中的一种:

节点名称nodeType
元素节点1
属性节点2
文本节点3
CDATA节点4
实体引用名称节点5
实体名称节点6
处理指令节点7
注释节点8
文档节点9
文档类型节点10
文档片段节点11
DTD声明节点12

        重点理解前三种节点即可

        每个节点有nodeName属性文本节点和属性节点的nodeValue属性

       ⑶节点获取的API:

        常用:children、parentNode、offsetParent

        不常用:firstElementChild、firstChild、lastElementChild、lastChild、nextElementSibling、nextSibling、previousElementSibling、 previouSibling          sibling [ˈsɪblɪŋ] 兄弟姐妹;兄;弟;姐;妹

2.创建、添加、删除节点

        ⑴创建节点:

        createElement:创建一个元素节点;

        createTextNode:创建一个文本节点;

        createDocumentFragment:创建一个文档碎片,先将多个节点整合到这里面再统一添加。  fragment [ˈfræɡmənt , fræɡˈment] 碎片;片段

        ⑵添加节点:

        appendChild:在元素的最后添加一个子节点;

        insertBefore:在元素某个子节点之前添加新子节点,第一个参数为新节点,第二个参数为已存在的子节点。

        ⑶替换节点:

        replaceChild:用新节点替换某个子节点,第一个参数为新节点,第二个参数为已存在的某个子节点。

        ⑷删除节点:

        removeChild:删除元素的某个子节点。

3.BOM

BOM(Browser Object Model)浏览器对象模型,提供了一些跟浏览或窗口相关的操作。我们学过的弹窗日志定时器就属于BOM的一部分。

4.重要事件

        ⑴onresize

        浏览器窗口大小发生改变的时候触发。

        ⑵onscroll               scroll [skrəʊl] 滚屏;滚动

        页面滚动的时候触发,也可以用于某个元素节点上。

        ⑶onfocus onblur              blur  [blɜː(r)] 使)变得模糊不清;(使)视线模糊;(使)看不清;(使)难以区分

        进入页面和离开页面时触发,也可以用于其他能获得焦点的元素节点上。

        ⑷open() close()

        打开与关闭窗口

5.重要对象

        ⑴location

        获取/设置 URL相关的属性。

        ⑵history

        操作当前标签页的历史,类似于点击浏览器地址栏左侧的前进和后退按钮。

        history.go(number) -- 前进或后退指定的页面数。

        history.back() -- 后退一页。

        history.forward() -- 前进一页。

        ⑶navigator

        获取浏览器相关的信息。

        ⑷Screen

        获取用户显示屏幕的各种信息。

        .width .height 获取显示器分辨率。

        .availWidth .availHeight 获取除去任务栏的大小。

6.各种尺寸获取

⑴可视区宽高

        ①窗口宽高

        window.innerWidth window.innerHeight

        包含了滚动条的宽度和浏览器本身的边框宽度(低版本IE不支持)

        ②内容区宽高

        document.documentElement.clientWidth        client [ˈklaɪənt] 客户;当事人;委托人;

        document.documentElement.clientHeight

        不包含滚动条等。

⑵元素的各种宽高

        ①client

        clientWidth clientHeight

        宽(高)+padding。

        ②offset                 offset [ˈɒfset] 开端;出发;平版印刷;抵消;补偿

        offsetWidth offsetHeight

        宽(高)+padding+border。

        ③scroll

        scrollWidth scrollHeigh

        内容的实际宽高,当内容没超出相当于client,当内容超出之后,会得到包括超出内容的实际高度,即使加了超出隐藏,也还是会得到内容所占的实际宽高。

⑷元素的各种距离

        ①offset

        offsetLeft offsetTop

        获取左边(上边),到定位父级的左边(上边)的距离。

        ②getBoundingClientRect

        返回一个对象,包含了元素各边到窗口的距离,返回的结构类似于:{top:100,left:20,bottom:500,right:890}。

⑸滚动距离

        ①页面滚动宽高

        doucment.documentElement.scrollTop

        document.documentElement.scrollLeft

        ②页面的滚动宽(高)。此属性可以赋值,能让页面滚动到指定的位置。

        设置滚动距离也可以使用window.scrollTo()

        ③元素滚动宽高

        元素节点.scrollTop 元素节点.scrollLeft

7.其他注意事项

        ⑴cloneNode(true):深复制,里面的所有节点都会被会复制

        ⑵cloneNode(false):浅复制,只复制外层元素节点

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值