第七章 异步编码

1  事件处理程序

处理程序:即网页加载完毕后将执行的代码,称回调函数或监听器;

包含:处理函数+window.onload=函数名;

 <script language="JavaScript" type="text/JavaScript">

 function page(){

 alert("I'm alive!");

 }

 window.onload=page;

 </script>

2 响应事件的方式编写代码

getElementByTagName返回NodeList对象,

表示DOM事件对象的属性:

target:存储触发事件的对象;

type:是字符串,如("click","load")指出发生的是哪种事件

timeStamp:提供事件发生时间属性;

keyCode:告诉用户刚刚按下那个键

clientX:确定鼠标/单击位置离浏览器窗口左边缘有多远;

clientY:确定鼠标/单击位置离浏览器窗口上边缘有多远;

screenX:确定鼠标/单击位置离屏幕窗口左边缘有多远;

screenY:确定鼠标/单击位置离屏幕窗口上边缘有多远;

pageX:确定鼠标/单击位置离网页窗口左边缘有多远;

pageY:确定鼠标/单击位置离网页窗口上边缘有多远;

touches:在触摸设备上确定用户用多少根手指触摸屏幕;

程序1 单击+计时

 <!doctype html>

 <html lang="en">

 <head>

 <title>Image Guess</title>

 <meta charset="utf-8">

 <style type="text/css">

 body{margin:20px;}

 img{margin:20px;}

 </style>

 <script language="JavaScript" type="text/JavaScript">

 window.onload=init;

 //初始捕捉事件

 function init(){

 var images=document.getElementsByTagName("img");

 for(var i=0;i<images.length;i++)

 images[i].onclick=showAnswer;

 }

 //处理单击事件

 function showAnswer(e){//单击产生一个事件对象被传递

 var image=e.target;//target指出触发事件的元素

 var name=image.id;

 name=name+".jpg";

 image.src=name;

 setTimeout(reblur, 2000, image);

 }

 //时间事件,2秒后变回模糊

 function reblur(image) {

 var name = image.id;

 name = name + "blur.jpg";

 image.src = name;

 }

 /*

 function init(){

 var image=document.getElementById("zero");

 image.onclick=showAnswer;

 }

 window.onload=init;

 function showAnswer(){

 var image=document.getElementById("zero");

 image.src="zero.jpg";

 }

 */

 //鼠标自动

 /*

 window.onload = function() {

 var images = document.getElementsByTagName("img");

 for (var i = 0; i < images.length; i++) {

 images[i].onmouseover = showAnswer;

 images[i].onmouseout = reblur;

 }

 };

 function showAnswer(eventObj) {

 var image = eventObj.target;

 var name = image.id;

 name = name + ".jpg";

 image.src = name;

 }

 function reblur(eventObj) {

 var image = eventObj.target;

 var name = image.id;

 name = name + "blur.jpg";

 image.src = name;

 }

 */

 </script>

 </head>

 <body>

 <img id="zero" src="zeroblur.jpg" />

 <img id="one" src="oneblur.jpg" />

 <img id="two" src="twoblur.jpg" />

 <img id="three" src="threeblur.jpg" />

 <img id="four" src="fourblur.jpg" />

 <img id="five" src="fiveblur.jpg" />

 </body>

 </html>

程序2 鼠标位置

 <!doctype html>

 <html lang="en">

 <head>

   <meta charset="utf-8">

   <title>Pirates Booty</title>

   <script>

 window.onload = init;

 function init() {

 var map = document.getElementById("map");

 map.onmousemove = showCoords;

 }

 function showCoords(eventObj) {

 var coords = document.getElementById("coords");

 var x = eventObj.clientX;//获取位置

 var y = eventObj.clientY;

 coords.innerHTML = "Map coordinates: " + x + ", " + y;//修改

 }

   </script>

 </head>

 <body>

 <img id="map" src="map.jpg">

 <p id="coords">Move mouse over map to find coordinates...</p>

 </body>

 </html>

3 事件群英谱

click:单击触发

load:加载完网页触发

unload:关闭或切换到其他网页触发

mousemove:在元素上移动鼠标触发

mouseover:鼠标移至元素上触发

mouseout:鼠标移开元素触发

keypress:按下任何键触发

resize:调整浏览器窗口大小触发

play:单击<video>元素播放按钮触发

pause:单击<video>元素暂停按钮触发

dragstart:用户拖曳网页元素时触发

drop:放下拖曳元素触发

touchstart:触摸设备,触摸并按住元素触发

touchend:停止触摸触发;

JavaScript学习笔记(六)—— 异步编码的更多相关文章

  1. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  2. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  3. JavaScript:学习笔记(9)——Promise对象

    JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...

  4. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  5. JavaScript:学习笔记(10)——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...

  6. Javascript学习笔记三——操作DOM(二)

    Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...

  7. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

  8. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  9. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  10. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

随机推荐

  1. BZOJ4891:[TJOI2017]龙舟(Pollard-Rho,exgcd)

    Description 加里敦大学有一个龙舟队,龙舟队有n支队伍,每只队伍有m个划手,龙舟比赛是一个集体项目,和每个人的能力息息相关,但由于龙舟讲究配合,所以评价队伍的能力的是一个值c = (b1*b ...

  2. 【转】iOS - SQLite 数据库存储

    本文目录 1.SQLite 数据库 2.iOS 自带 SQLite 的使用 3.fmdb 的使用 4.fmdb 多线程操作 5.其他 SQLite 的第三方封装库 回到顶部 1.SQLite 数据库 ...

  3. Python自动化之跨域访问jsonp

    这里提到了JSONP,那有人就问了,它同JSON有什么区别不同和区别呢,接下我们就来看看,百度百科有以下说明: ''' 1. JSON(JavaScript Object Notation) 是一种轻 ...

  4. 了解python wed 框架

    随着人工智能发展,python这门编程语言也渐渐被人们熟知.至于python为什么能AL的时代脱颖而出可以看一下旁边的网址了解一下https://blog.csdn.net/lixingshi/art ...

  5. smtp ssl模式邮件发送与附件添加

    #!/usr/bin/python3 import os import smtplib from email.mime.text import MIMEText from email.mime.mul ...

  6. “C++动态绑定”相关问题探讨

    一.相关问题: 1. 基类.派生类的构造和析构顺序 2. 基类.派生类中virtual的取舍 二.测试代码: #include <iostream> class A { public: A ...

  7. Redis高级特性---------事务与持久化与发布订阅

    一.redis事务的用法 1.开启事务:multi 2.提交事务:exec   ( queued只是把指令放入队列中,没有执行) 3.取消事务:discard 4.redis事务不能保证同时成功或者失 ...

  8. C++ 信号处理

    原文:https://www.w3cschool.cn/cpp/cpp-signal-handling.html C++ 信号处理 信号是由操作系统传给进程的中断,会提早终止一个程序.在 UNIX.L ...

  9. react router animation example

    https://github.com/reactjs/react-router/tree/80c71d57c936ed54babdde44309c01f6a4b56b77/examples/anima ...

  10. sqlplus 格式化一例

    对字符型,用axx格式,对数字型,用9999 格式(999表示占用3列) SQL> col 'ts#' format 999SQL> col 'file#' format 999SQL&g ...