DOM——事件类型、网页加载顺序

222 阅读2分钟

事件类型:鼠标事件、键盘事件

鼠标事件:

click(单击事件)

只要鼠标按下和松开时,鼠标指针在被选元素区域内部,那么无论鼠标中间是否离开过被选元素区域内部,函数都会触发。

dblclick(双击事件)

鼠标第一次按下和第二次松开时,鼠标指针在被选元素区域内部,并且时间间隔不能太长

mousedown:鼠标在被选元素区域内按下就触发

mouseup:鼠标在被选元素区域内松开就触发

mouseout:鼠标离开被选元素区域内就会触发

mouseleave:鼠标离开被选元素区域内就会触发(如果有子元素,那么从子元素离开到父元素,或从父元素离开到子元素都不会触发)

mouseover:鼠标进入被选元素区域内就会触发

mouseenter:鼠标进入被选元素区域内就会触发(如果有子元素,那么从子元素进入父元素,或从父元素进入子元素都不会触发)

mousemove:在被选元素区域内移动就会一直触发(与时间、距离都有关)

鼠标滚轮事件:

wheel: 鼠标滚轴滚动时,鼠标指针在被选元素内部,才会触发。

scroll(使用比较多):元素自己的滚动条滚动:单位时间内滚动条的位置发生变化(css中设置滚动条:overflow:scroll)

键盘事件:

keydown:输入框的键盘只要按下,就触发。

keyup:输入框的键盘只要松开,就触发。(比如一直按住,就不会触发)

keypress:输入框的键盘只要按下又松开,就触发。(但由于输入法的原因,只要按下就触发)

注意:keydown与keypress的区别:keydown在中文输入法中,也会不断的触发,包括enter键也会触发,而keypress就不会被触发。

这是keydown:

image.png

image.png

这是keypress:

image.png

image.png

输入框操作事件:

input:输入框在输入就触发

change:输入框失焦,并且value改变(常用于表单验证)

focus:输入框获取焦点时触发

blur:输入框失去焦点时触发

加载事件:

load:等待网页资源下载完毕再执行

img.onload: 图片节点加载完毕不会调用 要资源加载完毕就会调用

window.onload:等待页面所有资源下载完成(也就是浏览器加载完毕:5大BOM的功能加载完毕)才执行,包括图片资源的下载,所以它是最慢的

网页加载顺序:

url-->下载页面-->domTree,cssTree并行-->渲染树renderTree-->绘制页面-->继续下载图片资源,下载完毕再放到页面上去onload domTree:domTree的形成,是先把元素翻译成的节点对象挂到 domTree上去,再把属性 img_src放到渲染树上去

补充:

让标签有焦点:

1.标签写法:autofocus:true

2.js写法:x.focus()