11.event事件对象
event概念及作用
事件通常与函数结合使用,函数不会在事件发生前被执行
event事件对象只在事件发生的过程中才有效
event对象中包含了所有与事件相关的信息(私有的、共有的属性和方法)
在需要获取和事件相关的信息时使用,如:
获取键盘按下的按键码
获取鼠标的位置坐标
获取事件名称
获取事件生成的时间
获取事件的类型
等等......
获取event对象
所有浏览器都支持event对象,只是支持的方式不一样
FireFox、Chrome等浏览器要获取到event对象,需要从函数中传入,参数名随意
而IE在浏览器中event作为window对象的一个属性存在,可以直接使用 event 或 window.event 获取到
例如:
document.onmousedown=function ( e ){
var ev = e || window.event ; //兼容各个浏览器
console.log(ev);
};
注意 var ev = e || window.event ; 顺序!
鼠标/键盘相关属性
clientX/clientY属性:返回当事件被触发时,鼠标指针的坐标(到浏览器窗口的坐标)
offsetX/offsetY属性:返回当事件被触发时,鼠标指针的坐标(在事件源元素中的坐标)
pageX/pageY属性:返回当事件被触发时,鼠标指针的坐标(整个页面中的坐标)
button属性:返回触发事件的鼠标按键
which属性:返回触发事件的按键码(针对键盘和鼠标事件)
keCode属性:返回键盘按键的按键码
组合键:ctrlKey、altKey、shiftKey
其他属性/方法
在火狐中获得触发事件的元素
使用:event.target
在IE中获得触发事件的元素
使用:event.srcElement
// 兼容写法
var Target = event.target || event.srcElement;
event.relatedTarget 火狐获取触发事件的目标源,与target相反
event.fromElement IE获取触发事件的目标源,与srcElement相反
在mouseover事件中,它指向鼠标来自哪个元素
var from=event.relatedTarget || event.fromElement;
event.relatedTarget 火狐获取触发事件的目标源,与target相反
event.toElement IE获取触发事件的目标源,与srcElement相反
在mouseout事件中,它指向鼠标去往的那个元素
var to=event.relatedTarget||event.toElement;
阻止浏览器默认行为
event.preventDefault() //火狐
event.returnValue = false //IE
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
阻止事件传播
event.stopPropagation() //火狐
event.cancelBubble = true //IE
event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);
scroll 滚动条
scrollLeft:设置或获取当前左滚的距离,即左卷的距离;
scrollTop:设置或获取当前上滚的距离,即上卷的距离;
scrollHeight:获取对象可滚动的总高度;
scrollWidth:获取对象可滚动的总宽度;
onscroll 事件在元素滚动条在滚动时触发。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)