一, 滚动事件和加载事件
1. 滚动事件
当页面进行滚动时触发的事件
事件名:scroll
监听整个页面滚动:
Ø 给 window 或 document 添加 scroll 事件
2. 加载事件
加载外部资源(如图片、外联CSS和JavaScript等)加载完毕时触发的事件
为什么要学?
Ø有些时候需要等页面资源全部处理完了做一些事情
Ø老代码喜欢把 script 写在 head 中,这时候直接找 dom 元素找不到
事件名:load
监听页面所有资源加载完毕:
Ø 给 window 添加 load 事件
注意:不仅可以监听整个页面资源加载完毕,也可以针对某个资源绑定load事件
2.1 加载事件L2
当初始的HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像等完全加载
事件名:DOMContentLoaded
监听页面DOM加载完毕:
Ø 给 document 添加 DOMContentLoaded 事件
加载事件小结:
加载事件有哪两个?如何添加?
load 事件
Ø 监听整个页面资源给 window 加
DOMContentLoaded
Ø 给 document 加
Ø 当初始的 HTML 文档被完全加载和解析完成之后,而无需等待 样式表、图像等完全加载
二 , 元素大小和位置
scroll家族
offset家族
client家族
1. scroll家族
获取宽高:
Ø scrollWidth和scrollHeight
Ø 获取元素的内容总宽高(不包含滚动条)返回值不带单位
Ø 只读属性
获取位置:
Ø scrollLeft和scrollTop
Ø 获取元素内容往左、往上滚出去看不到的距离
Ø 这两个属性是可以修改的
获取页面的滚动卷曲距离: document.documentElement.scrollTop
document.documentElement HTML 文档返回对象为HTML元素
scroll家族小结:
1\. scrollWidth和scrollHeight是得到元素什么的宽高?
Ø 内容
Ø 不包含滚动条
2\. 被卷去的头部或者左侧用那个属性?是否可以读取和修改?
Ø scrollTop / scrollLeft
Ø 可以读取,也可以修改(赋值)
3\. 检测页面滚动的头部距离(被卷去的头部)用那个属性?
Ø document.documentElement.scrollTop
2. offset家族
获取宽高:
Ø offsetWidth和offsetHeight
Ø 获取元素的真实宽高、包含元素自身设置的宽高、padding、border
获取位置:
Ø offsetLeft和offsetTop
Ø 获取元素距离自己定位父级元素的左、上距离
注意都是只读属性
offset家族小结:
1\. offsetWidth和offsetHeight是得到元素什么的宽高?
Ø 内容 + padding + border
2\. offsetTop和offsetLeft 得到位置以谁为准?
Ø 带有定位的父级
Ø 如果都没有则以 文档左上角 为准
3. client家族
获取宽高:
Ø clientWidth和clientHeight
Ø 获取元素的可见部分宽高(不包含边框,滚动条等)
获取位置:
Ø clientLeft和clientTop
Ø 获取左边框和上边框宽度
注意都是只读属性
会在窗口尺寸改变的时候触发事件:
Ø resize
检测屏幕宽度:
三大家族小结:
-
offset家族
Ø offsetWidth offsetHeight 获取元素自身大小:包括自身设置的宽高、padding、border
Ø offsetLeft offsetTop 获取元素距离定位父级的左和上距离
Ø都是只读属性
-
client家族
Ø 获取元素可见区域的大小
Ø 获取元素左、上边框距离
Ø 都是只读属性
-
scroll家族
Ø 获取元素内容的总大小 只读属性
Ø 获取元素向左向上滚出去看不见的距离 可读写属性