《JavaScript入门经典(第6版)》——2.5 捕获鼠标事件

2.5 捕获鼠标事件

为页面增加与用户的交互是JavaScript的基本功能之一。为此,我们需要一些机制来检测用户和程序在特定时间在做什么,比如鼠标在浏览器的什么位置,用户是否单击了鼠标或按了键盘按键,页面是否完整加载到浏览器,等等。

这些发生的事情,我们称之为事件(event),JavaScript提供了多种工具来处理事件。第9章将详细介绍事件和处理事件的高级技术,现在先来看看利用JavaScript检测用户鼠标动作的一些方法。

JavaScript使用事件处理器(event handler)来处理事件,本章介绍其中的3个:onClick、onMouseOver和onMouseOut。

2.5.1 onClick事件处理器

onClick事件处理器几乎可以用于页面上任何可见的HTML元素。实现它的方式之一是给HTML元素添加一个属性:

onclick="…一些JavaScript语句…"

说明:虽然给HTML元素直接添加事件处理器是完全可行的,但现在人们已经不认为这是一种好的编程方式了。本书的第一部分仍然会使用这种方式,但后面的章节里会介绍更强大、更灵活的方式来使用事件处理器。
先来看一个范例,如程序清单2.3所示。

程序清单2.3 使用onClick事件处理器

上述HTML代码在页面的body区域添加一个按钮,并且设置了它的onclick属性。给定onclick属性的值,是一些JavaScript代码,当单击该HTML元素的时候(在这个例子中,就是按钮),我们想要运行这些JavaScript代码。当用户单击这个按钮时,onClick事件被激活(通常称为“被触发”),然后属性中所包含的JavaScript语句将会执行。

本例中只有一条语句:

alert('You clicked the button!')

图2.4是单击这个按钮得到的结果。

说明:也许有人注意到了,我们称这个事件处理器为onClick,而在HTML元素里添加它时却使用小写的onclick。这是因为HTML是不区分大小写的,而XHTML是区分大小写的,并且要求全部的HTML元素及属性名称都使用小写字母。
2.5.2 onMouseOver和onMouseOut事件处理器
如果需要检测鼠标指针与特定页面元素的位置关系,可以使用onMouseOver和onMouseOut事件处理器。

当鼠标进入页面上被某个元素所占据的区域时,会触发onMouseOver事件。而onMouserOut事件,很显然是在鼠标离开这一区域时触发的。

程序清单2.4展示了一个简单的onMouseOver事件处理过程。

程序清单2.4 使用onMouseOver事件处理器

图2.5展示了上述代码的执行结果。如果把程序清单2.4中的onmouseover替换为onmouseout,就会在鼠标离开图像区域(而不是在进入)时触发事件处理器,从而弹出警告对话框。

实践

{实现图像变化!} 利用onMouseOver和onMouseOut事件处理器可以在鼠标位于图像上方时,改变图像的显示方式。为此,当鼠标进入图像区域时,可以利用onMouseOver改变元素的src属性;而当鼠标离开时,利用onMouseOut再把这个属性修改回来。代码如程序清单2.5所示。

程序清单2.5 利用onMouseOver和onMouseOut实现图像翻滚

上述代码中出现了一些新语法,在onMouseOver和onMouseOut的JavaScript语句中,使用了关键字this。

当事件处理器是通过HTML元素的属性添加到页面时,this是指HTML元素本身。本例中就是“当前图像”,this.src就是指这个图像对象的src属性(使用了我们已经介绍过的句点表示法)。

本例中使用了两个图像:tick.gif和tick2.gif。当然可以使用任何可用的图像,但为了达到最佳效果,两个图像最好具有相同尺寸,而且文件不要太大。

使用编辑软件创建一个HTML文件,包含程序清单2.5所示的代码。可以根据实际情况修改图像文件的名称,但要确保所使用的图像和HTML文件位于同一个目录中。保存HTML文件并且在浏览器里打开它。

应该可以看到鼠标指针进入时,图像改变;当指针离开时,图像恢复原样,如图2.6所示。

说明:这曾经是图像翻滚的经典方式,而现在已经被更高效的“层叠样式表”(CSS)取代了,但它仍不失为展示onMouseOver和onMouseOut事件处理器的后一种方便的方式。

时间: 2024-11-10 11:09:27

《JavaScript入门经典(第6版)》——2.5 捕获鼠标事件的相关文章

《JavaScript入门经典(第6版)》——第1章 JavaScript简介 1.1 Web脚本编程基础

第1章 JavaScript简介 JavaScript入门经典(第6版) 本章主要内容包括: 服务器端和客户端编程 JavaScript如何改善Web页面 JavaScript的历史 文档对象模型(DOM)基础知识 window和document对象 如何使用JavaScript给Web页面添加内容 如何利用对话框提示用户 与只有文本内容的祖先相比,现代的Web几乎是完全不同的,它包含了声音.视频.动画.交互导航等很多元素,而JavaScript对于实现这些功能扮演了非常重要的角色. 在第1章中

《JavaScript入门经典(第6版)》——第2章 创建简单的脚本2.1 在Web页面里添加JavaScript

第2章 创建简单的脚本 JavaScript入门经典(第6版)本章主要内容包括: 在Web页面里添加JavaScript的各种方式JavaScript语句的基本语法声明和使用变量使用算术操作符代码的注释捕获鼠标事件第1章介绍了JavaScript是一种能够让Web页面更具有交互性的脚本语言. 本章将介绍如何向Web页面添加JavaScript,以及编写JavaScript程序的一些基本语法,比如语句.变量.操作符和注释.同时,本章将涉及更加实用的脚本范例. 2.1 在Web页面里添加JavaSc

《jQuery与JavaScript入门经典》——1.2 为编写jQuery和JavaScript做准备

1.2 为编写jQuery和JavaScript做准备 简要地介绍动态Web编程后,该切入正题,为编写jQuery和JavaScript准备好开发环境了. 编写jQuery和JavaScript项目时,开发环境至关重要.开发环境应具有如下特点. 易于使用的IDE:IDE提供了文本编辑器,让您能够以最简单的方式修改代码.请选择您用起来很顺手且支持HTML.CSS.JavaScript和jQuery的IDE. 用于开发的Web服务器:绝不要直接在用于生产的Web服务器上进行开发(虽然大多数人都会偶尔

《jQuery与JavaScript入门经典》——2.2 调试HTML元素

2.2 调试HTML元素 调试HTML元素有时候很困难.浏览器渲染HTML文档时,简单的语法错误都可能导致严重的问题.另外,HTML元素的有些属性不影响网页的外观,但会影响网页的行为. HTML检查器(Inspector)和DOM编辑器可帮助您找出并修复HTML代码中的问题.下面通过一些简单的示例演示如何使用这些工具. 2.2.1 查看HTML元素 HTML检查器让您能够查看浏览器分析的每个HTML元素,这让您能够从浏览器的角度审视HTML,让语法错误更为明显. 图2.5显示了Firebug的H

《jQuery与JavaScript入门经典》——1.5 作业

1.5 作业 作业包含一组问题及其答案,旨在加深您对本章内容的理解.请尽可能先回答问题,再看答案. 1.5.1 测验1.打开网页时发送的是GET请求还是POST请求? 2.哪种脚本能够访问浏览器鼠标事件:服务器端脚本.客户端脚本,还是两者都如此? 3.判断对错:所有浏览器都默认启用了JavaScript控制台. 4.定义DOM元素的外观时,使用哪种脚本最合适? 1.5.2 答案1.GET. 2.客户端. 3.错.在所有浏览器中,您都必须手工启用JavaScript调试. 4.使用CSS脚本来定义

Windows 8开发入门(四) Windows 8的常用鼠标事件

在Windows 8中采用一些新的鼠标事件以替代以前Silverlight的鼠标事件,其常用事件如下: PointerWheelChanged:鼠标中键滑动事件. PointerPressed:鼠标点击下去的时候即触发事件 . PointerReleased:鼠标点击下去的时候释放鼠标时触发事件. PointerEntered:鼠标进入有 效范围之时触发一次. PointerMoved:鼠标在有效范围之内移动之时触发事件. PointerExited:鼠标退出有效范围之时触发事件. 在本文中将通

《JavaScript入门经典(第6版)》——1.6 DOM简介

1.6 DOM简介 "文档对象模型"(Document Object Model,DOM)是对文档及其内容的抽象表示. 每次浏览器要加载和显示页面时,都需要解释(更专业的术语是"解析")构成页面的HTML源代码.在解析过程中,浏览器建立一个内部模型来表示文档里的内容,这个模型就是DOM.在浏览器渲染页面的可见内容时,就会引用这个模型.可以使用JavaScript来访问和编辑这个DOM的各个部分,从而改变页面的显示内容和用户交互的方式. 在早期,JavaScript只

《JavaScript入门经典(第6版)》——1.7 与用户交互

1.7 与用户交互 现在来介绍window和document对象的一些方法.首先介绍的这两个方法都能提供与用户交互的手段. 1.7.1 window.alert() 即使不知道window.alert(),我们实际上在很多场合已经看到过它了.window对象位于DOM层级的最顶端,代表了显示页面的浏览器窗口.当我们调用alert()方法时,浏览器会弹出一个对话框显示设置的信息,还有一个"确定"按钮.范例如下: 这是第一个使用句点表示法的范例,其中调用了window对象的alert()方

《JavaScript入门经典(第6版)》——1.4 JavaScript起源

1.4 JavaScript起源 JavaScript的祖先可以追溯到20世纪90年代中期,首先是Netscape Navigator 2引入了1.0版本. 随后,"欧洲计算机制造商协会"(ECMA)开始介入,制定了ECMAScript规范,奠定了JavaScript迅猛发展的基础.与此同时,微软开发了自己版本的JavaScript:jScript,在IE浏览器上使用. 注意:ECMA继续发布ECMAScript语言标准的更新版本.在编写本书的时候,ECMAScript 6已经快要形成