网页特效设计基础第5章-jQuery中的事件处理和动画效果.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《网页特效设计基础第5章-jQuery中的事件处理和动画效果.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网页 特效 设计 基础 jQuery 中的 事件 处理 动画 效果
- 资源描述:
-
1、刘刚刘刚 主编主编新一代信息技术“十三五”系列规划教材 第第5 5章章 jQuery jQuery中的事件处理和动画效果中的事件处理和动画效果 人们常说人们常说“事件是脚本语言的灵魂事件是脚本语言的灵魂”,事件使页面具有,事件使页面具有了动态性和响应性,如果没有事件将很难完成页面与用户之了动态性和响应性,如果没有事件将很难完成页面与用户之间的交互。在传统的间的交互。在传统的 JavaScript 中内置了一些事件响应的中内置了一些事件响应的方式,但是方式,但是 jQuery 增强、优化并扩展了基本的事件处理机增强、优化并扩展了基本的事件处理机制。制。5.1 jQuery 5.1 jQuery
2、中的事件处理中的事件处理 5.1.1 5.1.1 页面加载响应事件页面加载响应事件$(document).ready()$(document).ready()方法是事件模块中最重要的方法是事件模块中最重要的一个函数,它极大地提高了一个函数,它极大地提高了 Web Web 响应速度。响应速度。$(document)$(document)是获取整个文档对象,从这个方法名称来理解,就是获取是获取整个文档对象,从这个方法名称来理解,就是获取就绪的文档。就绪的文档。方法的书写格式为:方法的书写格式为:$(document).ready(function()$(document).ready(functi
3、on()/在这里写代码在这里写代码 ););可以简写成:可以简写成:$().ready(function()$().ready(function()/在这里写代码在这里写代码 ););当当$()$()不带参数时,默认的参数就是不带参数时,默认的参数就是 document document,所以所以$()$()是是$(document)$(document)的简写形式。的简写形式。还可以进一步简写成:还可以进一步简写成:$(function()$(function()/在这里写代码在这里写代码 ););通过上面的介绍可以看出,在通过上面的介绍可以看出,在 jQuery jQuery 中,可以使用
4、中,可以使用$(document).ready()$(document).ready()方法代替传统的方法代替传统的 window.onload()window.onload()方法,不过两者之间还是有些细微的区别的,主要表示在以方法,不过两者之间还是有些细微的区别的,主要表示在以下两方面。下两方面。(1 1)在一个页面上可以无限制地使用)在一个页面上可以无限制地使用$(document).ready()$(document).ready()方法,各个方法间并不冲突,会按照在代码中的顺序依次执方法,各个方法间并不冲突,会按照在代码中的顺序依次执行。而行。而 window.onload()win
5、dow.onload()方法在一个页面中只能使用一次。方法在一个页面中只能使用一次。(2 2)在一个文档完全下载到浏览器时(包括所有关联的文)在一个文档完全下载到浏览器时(包括所有关联的文件,如图片、横幅等)就会响应件,如图片、横幅等)就会响应 window.onload()window.onload()方法。方法。而而$(document).ready()$(document).ready()方法是在所有的方法是在所有的 DOM DOM 元素完全就元素完全就绪以后就可以调用,不包括关联的文件。绪以后就可以调用,不包括关联的文件。5.1.2 jQuery 5.1.2 jQuery 中的事件中的
6、事件 只有页面加载显然是不够的,程序在其他的时候也需只有页面加载显然是不够的,程序在其他的时候也需要完成某个任务。比如鼠标单击(要完成某个任务。比如鼠标单击(onclickonclick)事件、敲击)事件、敲击键盘(键盘(onkeypressonkeypress)事件以及失去焦点()事件以及失去焦点(onbluronblur)事件)事件等。等。在不同的浏览器中事件名称是不同的,例如,在在不同的浏览器中事件名称是不同的,例如,在IEIE浏浏览器中的事件名称大部分都含有览器中的事件名称大部分都含有 on on,例如,例如 onkeypress()onkeypress()事件,但是在火狐浏览器却没有
7、这个事件名称,事件,但是在火狐浏览器却没有这个事件名称,jQueryjQuery统统一了所有事件的名称。一了所有事件的名称。jQuery jQuery 中的事件如表中的事件如表 5-1 5-1 所示。所示。表表 5-1 jQuery 中的事件中的事件续表续表5.1.3 5.1.3 事件绑定事件绑定 在页面加载完毕时,程序可以通过为元素绑定事件在页面加载完毕时,程序可以通过为元素绑定事件完成相应的操作。在完成相应的操作。在 jQuery jQuery 中,事件绑定通常可以分中,事件绑定通常可以分为元素绑定事件、移除绑定事件和绑定一次性事件处理为元素绑定事件、移除绑定事件和绑定一次性事件处理 3
8、3 种情况。种情况。1 1bind bind 为元素绑定事件为元素绑定事件 在在 jQuery jQuery 中,为元素绑定事件可以使用中,为元素绑定事件可以使用 bind()bind()方法,该方法的语法结构如下:方法,该方法的语法结构如下:bind(type,data,fn)bind(type,data,fn)p typetype:事件类型,表:事件类型,表 5-1 5-1(jQuery jQuery 中的事件)中所中的事件)中所列举的事件。列举的事件。p datadata:可选参数,作为:可选参数,作为 event.data event.data 属性值传递给属性值传递给事件对象的额外数
9、据对象。大多数的情况下不使用该事件对象的额外数据对象。大多数的情况下不使用该参数。参数。p fnfn:绑定的事件处理程序。:绑定的事件处理程序。p 在在 3.0 3.0 版本被废弃使用。版本被废弃使用。2 2unbind unbind 移除绑定移除绑定 在在jQueryjQuery中,为元素移除绑定事件可以使用中,为元素移除绑定事件可以使用unbind()unbind()方法,该方法的语法结构如下:方法,该方法的语法结构如下:unbind(type,data)unbind(type,data)p typetype:可选参数,用于指定事件类型。:可选参数,用于指定事件类型。p datadata:
10、可选参数,用于指定要从每个匹配元素的事件中:可选参数,用于指定要从每个匹配元素的事件中反绑定的事件处理函数。反绑定的事件处理函数。p 在在 3.0 3.0 版本被废弃使用。版本被废弃使用。3 3one one 绑定一次性事件处理绑定一次性事件处理 在在 jQuery jQuery 中,为元素绑定一次性事件处理可以使中,为元素绑定一次性事件处理可以使用用 one()one()方法。方法。one()one()方法为每一个匹配元素的特定事方法为每一个匹配元素的特定事件(如件(如clickclick)绑定一个一次性的事件处理函数。在每)绑定一个一次性的事件处理函数。在每个对象上,这个事件处理函数只会被
11、执行一次。其他规个对象上,这个事件处理函数只会被执行一次。其他规则与则与 bind()bind()函数相同。这个事件处理函数会接收到一函数相同。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回件处理函数必须返回 false false。该方法的语法结构如下:该方法的语法结构如下:one(type,data,fn)one(type,data,fn)p typetype:用于指定事件类型。:用于指定事件类型。
12、p datadata:可选参数,作为:可选参数,作为 event.data event.data 属性值传递给属性值传递给事件对象的额外数据对象。事件对象的额外数据对象。p fnfn:绑定到每个匹配元素的事件上面的处理函数。:绑定到每个匹配元素的事件上面的处理函数。4 4on on 绑定一次或多次事件处理绑定一次或多次事件处理 在在 jQuery jQuery 中,为元素绑定一个或多个事件处理可中,为元素绑定一个或多个事件处理可以使用以使用 on()on()方法。方法。on()on()方法绑定事件处理程序到当前选方法绑定事件处理程序到当前选定的定的 jQuery jQuery 对象中的元素,在
13、对象中的元素,在 jQuery 1.7 jQuery 1.7 版本中添版本中添加了该方法。该方法的语法结构如下:加了该方法。该方法的语法结构如下:on(events,selector,data,fn)on(events,selector,data,fn)p eventsevents:一个或多个用空格分隔的事件类型和可选的:一个或多个用空格分隔的事件类型和可选的命名空间,如命名空间,如clickclick事件。事件。p selectorselector:可选参数。:可选参数。p datadata:当一个事件被触发时要传递:当一个事件被触发时要传递 event.data event.data 给事
14、给事件处理函数。件处理函数。p fnfn:该事件被触发时执行的函数。当:该事件被触发时执行的函数。当 fn=false fn=false 时可时可以做一个函数的简写,返回值为以做一个函数的简写,返回值为 false false。5 5off off 移除一次或多次事件处理移除一次或多次事件处理 在在 jQuery jQuery 中,在选择元素上移除一个或多个事件的事中,在选择元素上移除一个或多个事件的事件处理函数时可以使用件处理函数时可以使用 off()off()方法,可以用方法,可以用 off()off()方法移方法移除用除用.on().on()绑定的事件处理程序,在绑定的事件处理程序,在
15、jQuery 1.7 jQuery 1.7 版本中添版本中添加了该方法。该方法的语法结构如下:加了该方法。该方法的语法结构如下:off(events,selector,fn)off(events,selector,fn)p eventsevents:一个或多个用空格分隔的事件类型和可选的命名:一个或多个用空格分隔的事件类型和可选的命名空间,如空间,如clickclick事件。事件。p selectorselector:一个最初传递到:一个最初传递到.on().on()事件处理程序附加的选事件处理程序附加的选择器。择器。p fnfn:事件处理程序函数以前附加事件上,或特殊值:事件处理程序函数以前
16、附加事件上,或特殊值 false false。5.1.4 5.1.4 模拟用户操作模拟用户操作 在在 jQuery jQuery 中提供了模拟用户的操作触发事件、模中提供了模拟用户的操作触发事件、模仿悬停事件和模拟鼠标连续单击事件仿悬停事件和模拟鼠标连续单击事件 3 3 种模拟用户操作种模拟用户操作的方法。的方法。1 1模拟用户的操作触发事件模拟用户的操作触发事件 在在 jQuery jQuery 中一般常用中一般常用 triggerHandler()triggerHandler()方法和方法和 trigger()trigger()方法来模拟用户的操作触发事件。例如,可以方法来模拟用户的操作触
17、发事件。例如,可以使用下面的代码来触发使用下面的代码来触发 id id 为为 button button 的按钮的的按钮的 click click 事件。事件。$(#button).trigger(click);$(#button).trigger(click);TriggerHandler()TriggerHandler()方法的语法格式与方法的语法格式与 trigger()trigger()方法完全相同。所不同的是:方法完全相同。所不同的是:triggerHandler()triggerHandler()方法方法不会导致浏览器同名的默认行为被执行,而不会导致浏览器同名的默认行为被执行,而
18、trigger()trigger()方法会导致浏览器同名的默认行为的执行。例如,使用方法会导致浏览器同名的默认行为的执行。例如,使用 trigger()trigger()触发一个名称为触发一个名称为 submit submit 的事件,同样会导的事件,同样会导致浏览器执行提交表单的操作。要阻止浏览器的默认行致浏览器执行提交表单的操作。要阻止浏览器的默认行为,只需要返回为,只需要返回falsefalse。另外,使用。另外,使用 trigger()trigger()方法和方法和 triggerHandler()triggerHandler()方法还可以触发方法还可以触发 bind()bind()绑
19、定的自定绑定的自定义事件,并且还可以为事件传递参数。义事件,并且还可以为事件传递参数。2 2模仿悬停事件模仿悬停事件 模仿悬停事件是指模仿鼠标指针移动到一个对象上模仿悬停事件是指模仿鼠标指针移动到一个对象上面又从该对象上面移出的事件,可以通过面又从该对象上面移出的事件,可以通过 jQuery jQuery 提供提供的的hover(over,out)hover(over,out)方法实现。方法实现。hover()hover()方法的语法结方法的语法结构如下:构如下:hover(over,out)hover(over,out)p overover:用于指定当鼠标指针在移动到匹配元素上时触:用于指定
20、当鼠标指针在移动到匹配元素上时触发的函数。发的函数。p outout:用于指定当鼠标指针在移出匹配元素上时触发:用于指定当鼠标指针在移出匹配元素上时触发的函数。的函数。当鼠标指针移动到一个匹配的元素上面时,会触发当鼠标指针移动到一个匹配的元素上面时,会触发指定的第指定的第 1 1 个函数。当鼠标指针移出这个元素时,会个函数。当鼠标指针移出这个元素时,会触发指定的第触发指定的第 2 2 个函数。而且,会伴随着对鼠标指针个函数。而且,会伴随着对鼠标指针是否仍然处在特定元素中的检测(例如,处在是否仍然处在特定元素中的检测(例如,处在 div div 的的图像中),如果是,则会继续保持图像中),如果是
21、,则会继续保持“悬停悬停”状态,而不状态,而不触发移出事件。触发移出事件。5.1.5 5.1.5 事件捕获与事件冒泡事件捕获与事件冒泡 事件捕获和事件冒泡都是一种事件模型,事件捕获和事件冒泡都是一种事件模型,DOM DOM 标准规标准规定应该同时使用这两个模型:首先事件要从定应该同时使用这两个模型:首先事件要从 DOM DOM树顶层的树顶层的元素到元素到 DOM DOM 树底层的元素进行捕获,然后再通过事件冒泡树底层的元素进行捕获,然后再通过事件冒泡返回到返回到 DOM DOM 树的顶层。树的顶层。在标准事件模型中,事件处理程序既可以注册到事件在标准事件模型中,事件处理程序既可以注册到事件捕获
22、阶段,也可以注册到事件冒泡阶段。但是并不是所有捕获阶段,也可以注册到事件冒泡阶段。但是并不是所有的浏览器都支持标准的事件模型,大部分浏览器默认都把的浏览器都支持标准的事件模型,大部分浏览器默认都把事件注册在事件冒泡阶段,所以事件注册在事件冒泡阶段,所以 jQuery jQuery 始终会在事件冒始终会在事件冒泡阶段注册事件处理程序。泡阶段注册事件处理程序。1 1什么是事件捕获与事件冒泡什么是事件捕获与事件冒泡 图图 5-7 5-7、图、图 5-8 5-8 和图和图 5-9 5-9 展示了鼠标指针在不展示了鼠标指针在不同元素上悬停时的效果。同元素上悬停时的效果。图图 5-6 页面结构页面结构 图
23、图 5-7 鼠标指针悬停在鼠标指针悬停在 span 元素上的效果元素上的效果图图 5-8 鼠标指针悬停在鼠标指针悬停在 p 元素上的效果元素上的效果 图图 5-9 鼠标指针悬停在鼠标指针悬停在 div 元素上的效果元素上的效果 从上面的运行结果中可以看到,当鼠标指针在从上面的运行结果中可以看到,当鼠标指针在spanspan元素元素上时,上时,3 3个元素都被加上了红色边框。说明在响应个元素都被加上了红色边框。说明在响应spanspan元素元素的的mouseovermouseover事件的同时,其他两个元素的事件的同时,其他两个元素的mouseovermouseover事件事件也被响应。触发也被
24、响应。触发spanspan元素的事件时,浏览器最先响应的将是元素的事件时,浏览器最先响应的将是spanspan元素的事件,其次是元素的事件,其次是p p元素,最后是元素,最后是divdiv元素。在浏览器元素。在浏览器中事件响应的顺序如图中事件响应的顺序如图5-105-10所示。这种事件的响应顺序就叫所示。这种事件的响应顺序就叫做事件冒泡。事件冒泡是从做事件冒泡。事件冒泡是从DOMDOM树的顶层向下进行事件响应。树的顶层向下进行事件响应。另一种相反的策略就是事件捕获,事件捕获是从另一种相反的策略就是事件捕获,事件捕获是从DOM DOM 树树的底层向上进行事件响应,事件捕获的顺序如图的底层向上进行
25、事件响应,事件捕获的顺序如图5-115-11所示。所示。图图 5-10 事件冒泡(由具体到一般)事件冒泡(由具体到一般)图图 5-11 事件捕获(由一般到具体)事件捕获(由一般到具体)2 2事件对象事件对象 通常情况下,在不同浏览器中获取事件对象是比较通常情况下,在不同浏览器中获取事件对象是比较困难的。针对这个问题,困难的。针对这个问题,jQuery jQuery 进行了必要的处理,进行了必要的处理,使得在任何浏览器中都能轻松地获取事件对象以及事件使得在任何浏览器中都能轻松地获取事件对象以及事件对象的一些属性。对象的一些属性。在程序中使用事件对象非常的简单,只要为函数添在程序中使用事件对象非常
展开阅读全文