hello 本周来继续复习一下dom事件中的委托事件相关的其他事件
其他事件
1、页面加载事件
加载外部资源(如图片、外联CSS和JavaScript等)加载完毕时触发的事件
为什么要学?
有些时候需要等页面资源全部处理完了做一些事情
老代码喜欢把 script 写在 head 中,这时候直接找 dom 元素找不到
事件名:load
1、监听页面所有资源加载完毕:
给 window 添加 load 事件,注意:不光可以监听整个页面资源加载完毕,也可以针对某个资源绑定load事件
2、当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像等完
全加载
事件名:DOMContentLoaded
监听页面DOM加载完毕:
给 document 添加 DOMContentLoaded 事件
元素滚动事件
1、给 window 或 document 添加 scroll 事件
监听某个元素的内部滚动直接给某个元素加即可,可以使用scroll 来检测滚动的距离、
滚动条在滚动的时候持续触发的事件
为什么要学?
很多网页需要检测用户把页面滚动到某个区域后做一些处理, 比如固定导航栏,比如返回顶部
事件名:scroll
监听整个页面滚动
2、scrollLeft和scrollTop (属性)
获取被卷去的大小
获取元素内容往左、往上滚出去看不到的距离
这两个值是可读写的
尽量在scroll事件里面获取被卷去的距离
3、我们经常检测页面滚动的距离,比如页面滚动100像素,就可以显示一个元素,或者固定一个元素
被卷去的头部或者左侧:scrollTop / scrollLeft,可以读写也可以修改的属性。
检测页面滚动的头部距离(被卷去的头部):document.documentElement.scrollTop
页面尺寸事件
1、会在窗口尺寸改变的时候触发事件:
resize
2、检测屏幕宽度:
3、clientWidth和clientHeight:获取元素的可见部分宽高(不包含边框,margin,滚动条等)
元素尺寸与位置
获取宽高:
获取元素的自身宽高、包含元素自身设置的宽高、padding、border
1、 offsetWidth和offsetHeight
获取出来的是数值,方便计算
注意: 获取的是可视宽高, 如果盒子是隐藏的,获取的结果是0
2、 offsetLeft和offsetTop 注意是只读属性:获取元素距离自己定位父级元素的左、上距离 3、元素尺寸于位置-尺寸
获取位置:
- element.getBoundingClientRect()
方法返回元素的大小及其相对于视口的位置。
okk 下周继续好好学习吧