事件对象:
也是一个对象,这个对象里有事件触发时的相关信息
事件对象在哪里?
在事件绑定的回调函数的第一个参数就是事件对象
如果得到事件对象,在事件处理函数里面,随便准备一个形参,这个形参就是事件对象.
事件源.addEventListener('事件类型',function(e){})
环境对象:
函数里面的this就是一个特殊变量
回调函数:
回调函数本质还是一个函数,只不过把他当做参数使用
使用匿名函数当做回调函数比较常见
事件冒泡:
冒泡阶段:从里往外
阻止冒泡的语法:e.stopPrompagation()
阻止默认行为:
有两个HTML标签有默认行为
a标签有默认跳转行为
form表单里面的submit有默认提交表单行为
要阻止默认行为,用到的技术也是事件对象,需要获取到事件对象
语法:e.preventDoefault
解绑事件:
L0级别:dom元素.on事件类名=null
L2级别:dom对象.removeEventListener('事件类型',需要解绑的函数)
鼠标经过事件:
mouseover 和 mouseout 会有冒泡效果
mouseenter 和 mouseleave 没有冒泡效果 (推荐)
事件委托:
利用了冒泡事件的机制(从里往外,先触发自己,在触发父元素)将事件注册委托给父元素
只给父元素里面的指定子元素注册事件:- e.target.tagName
e.target是指事件触发的元素 事件源
页面滚动事件:
页面window对象或者document对象注册scroll事件只要滚动条滚动了就触发
document.addEventListener('scroll',函数)
scrollTop:
页面滚动事件获取页面向上滚动的距离
document.documentElement.scrollTop