(一)事件
1、什么是事件
是指用户在某事务上由于某种行为所执行的操作; (对页面元素的某种操作)
事件是文档或者浏览器窗口中发生的,特定的交互瞬间。
事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字。
事件是javaScript和DOM之间交互的桥梁。
2、 事件的三要素
事件源:是指在哪个元素引发的事件,如:a标签、div标签
事件:事件是指执行的动作
如:单击、双击等
事件驱动程序(事件处理程序):即执行的结果
如:单击button标签所执行的函数
3、event
1、event对象,被称为事件对象。
因此它只会在发生一个事件时可用。不同的事件产生的事件对象不同
存在兼容 :
在IE中,获取event对象:
xxx.onclick = function(){
alert(window.event);
}
在非IE浏览器,获取event对象,用传参的方式:
xxx.onclick = function(e){
console.log(e)
兼容问题 : e = e || window.event
}
2、event.button属性介绍
button属性 : 用来确认用户操作的是左键 滚轮 右键
左键 0,滚轮 1,右键 2
3、 event.clientX、event.clientY event.pageX、event.pageY event.offsetX、event.offsetY
event.clientX、event.clientY
鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条
event.pageX、event.pageY
它们使用的是文档坐标而非窗口坐标,也就是鼠标到页面的距离
event.offsetX、event.offsetY
鼠标到盒子本身的距离
4、键盘事件
1、键盘事件分类
1)onkeydown :键盘按下触发事件,功能键也能识别(shift / ctrl / alt);不能识别大小写;
2)onkeyup : 键盘弹起触发事件;也能识别功能键 不能识别大小写
3)onkeypress:键盘按下触发事件,不能识别功能键的keyCode;能识别大小写;
2、组合键ctrlKey、altKey
ctrlKey 事件属性可返回一个布尔值,指示当事件发生时,Ctrl 键是否被按下
altKey 事件属性返回一个布尔值。指示在指定的事件发生时,Alt 键是否被按下
3、keyCode/which兼容
keyCode/which 获取键盘的按键值
IE8 及其更早版本不支持 which 属性。不支持的浏览器可使用 keyCode 属性。但是, keyCode 属性在 Firefox 浏览器的 onkeypress 事件中是无效的。 兼容这些浏览器你可以使用以下代码
var x = event.which || event.keyCode; 使用 which 或 keyCode, 这样可支持不同浏览器
注意: 在onkeypress事件中, 如果按住ctrl + 回车 ,此时,回车键的keyCode的值为10