前端学习第二十九更

                                            EVENT


1、什么是事件

一个事件由什么东西组成

触发谁的事件:事件源

触发什么事件:事件类型

触发以后做什么:事件处理函数

2、事件对象

每一个事件都会有一个对应的对象来描述这些信息,我们就把这个对象叫做事件对象

浏览器给了我们一个黑盒子,叫做window.event,就是对事件信息的所有描述

这个玩意很好用,但是一般来说,好用的东西就会有兼容性问题

在IE低版本里面这个东西好用,但是在高版本IE和Chrome里面不好使了

我们就得用另一种方式来获取事件对象

在每一个事件处理函数的行参位置,默认第一个就是事件对象

兼容写法:Div.onclick = function (e) {

          e = e || window.event

          console.log(e.X轴坐标点信息)

          console.log(e.Y轴坐标点信息)

}

3、点击事件的光标坐标点获取

offsetX和offsetY(相对于你点击的元素来说)

clientX和clientY(相对于浏览器窗口你点击的坐标点)

pageX和pageY(相对于页面你点击的坐标点)

4、点击按键信息(了解)

我们使用事件对象.button来获取信息

0为鼠标左键,1为滚轮,2为鼠标右键

5、常见的事件(了解)

大致分为几类,浏览器事件/ 鼠标事件 / 键盘事件 / 表单事件 / 触摸事件

浏览器事件

load:页面全部资源加载完毕

scroll:浏览器滚动的时候触发

鼠标事件

click:点击事件

dblclick:双击事件

contextmenu:右键单击事件

mousedown:鼠标左键按下事件

mouseup:鼠标左键抬起事件

mousemove:鼠标移动

mouseover:鼠标移入事件

mouseout:鼠标移出事件

mouseenter:鼠标移入事件

mouseleave:鼠标移出事件

...

键盘事件

keyup:键盘抬起事件

keydown:键盘按下事件

keypress:键盘按下再抬起事件

...

表单事件

change : 表单内容改变事件

input : 表单内容输入事件

submit : 表单提交事件

...

触摸事件

touchstart:触摸开始事件

touchend:触摸结束事件

touchmove:触摸移动事件

...

6、键盘事件

我们在键盘事件里面最主要的就是要做两个事情

判断点击的是哪个按键

有没有组合按键,shift + a / ctrl + b / ...

确定按键

我们的键盘上每一个按键都有一个自己独立的编码

我们就是靠这个编码来确定我们按下的是哪个按键的

我们通过事件对象.keyCode或者事件对象.which来获取

为什么要有两个呢,是因为FireFox2.0 不支持keycode所以要用which

常见的键盘码(了解)

8: 删除键(delete)

9: 制表符(tab)

13: 回车键(enter)

16: 上档键(shift)

17: ctrl 键

18: alt 键

27: 取消键(esc)

32: 空格键(space)

...

组合按键

组合案件最主要的就是alt / shift / ctrl三个按键

在我点击某一个按键的时候判断一下这三个键有没有按下,有就是组合了,没有就是没有组合

事件对象里面也为我们提供了三个属性:

altKey:alt 键按下得到 true,否则得到 false

shiftKey:shift 键按下得到 true,否则得到 false

ctrlKey:ctrl 键按下得到 true,否则得到 false

我们就可以通过这三个属性来判断是否按下了

事件的绑定方式

我们现在给一个注册事件都是使用onxxx的方式

但是这个方式不是很好,只能给一个元素注册一个事件

一旦写了第二个事件,那么第一个就被覆盖了

当你点击的时候,只会执行第二个,第一个就没有了

我们还有一种事件监听的方式去给元素绑定事件

使用addEventListener的方式添加

这个方法不兼容,在IE 里面要使用attachEvent

事件监听

addEventListener : 非 IE 7 8 下使用

语法:元素.addEventListener('事件类型', 事件处理函数, 冒泡还是捕获)

注意:事件类型的时候不要写on,点击事件就是 click,不是 onclick

attachEvent:IE 7 8 下使用

语法:元素.attachEvent('事件类型', 事件处理函数)

注意:事件类型的时候要写on,点击事件就行 onclick

两个方式的区别

注册事件的时候事件类型参数的书写:

addEventListener:不用写on

attachEvent:要写on

参数个数:

addEventListener:一般是三个常用参数

attachEvent:两个参数

执行顺序:

addEventListener:顺序注册,顺序执行

attachEvent:顺序注册,倒叙执行

适用浏览器:

addEventListener:非IE 7 8 的浏览器

attachEvent:IE 7 8 浏览器

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容