7.1.3 翻滚图像
翻滚图像只是通过鼠标光标移动到图像上来触发的一个图像交换(参见7.1.1节)。换句话说,直接给mouseover事件分配一个图像交换。例如,假设你在页面上有一个ID为photo的图像。当鼠标光标移动到图像上时,我们希望出现一个新的图像。可以使用jQuery来完成,如下所示:
1<script src="js/jquery-1.6.3.min.js"></script>
2<script>
3$(document).ready(function(){4
var newPhoto=new Image();5 newPhoto.src='images/newImage.jpg';
6$('#photo').mouseover(function(){
7$(this).attr('src',newPhoto.src);
8});//end mouseover
9});//end ready
10</script>
第3行和第4行预载入了要交换的图像。第5行等待HTML载入,然后,JavaScript可以访问HTML的当前图像。代码剩下的部分给图像分配一个mouseover事件,以及改变图像的src属性以匹配新图像的函数。
既然滚动图像通常会在鼠标光标移开的时候恢复到旧的图像,我们也需要一个mouseout事件来换回图像。正如5.4.2节所介绍的,jQuery提供了自己的事件,叫做hover(),它负责mouseover和mouseout事件:
1<script src="js/jquery-1.6.3.min.js"></script>2<script>
3$(document).ready(function(){4
var newPhoto=new Image();5
newPhoto.src='images/newImage.jpg';6
var oldSrc=$('#photo').attr('src');7$('#photo').hover(
8 function(){
9$(this).attr('src',newPhoto.src);
10},
11 function(){
12$(this).attr('src',oldSrc);
13});//end hover
14});//end ready
15</script>
hover()函数接收两个参数:第一个参数是一个函数,告诉浏览器当鼠标光标移动到图像上的时候做些什么;第二个参数也是一个函数,告诉浏览器当鼠标光标从图像上移开的时候做些什么。这段代码还添加了一个变量oldSrc,通过它来记录原始图像的src属性,也就是当页面载入的时候出现的图像的文件路径。
我们不仅限于翻滚图像,还可以为任何标签(包括一个链接、一个表单元素,甚至一个段落)添加一个hover()函数。通过这种方式,页面上的任何标签都可以触发页面其他位置的一幅图像发生变化。例如,假设当鼠标光标移动到页面的<h1>标签上,我们希望更换一幅照片。假设目标图像和前面的例子相同。修改的代码如粗体所示:
1<script src="js/jquery-1.6.3.min.js"></script>2<script>
3$(document).ready(function(){4
var newPhoto=new Image();5
newPhoto.src='images/newImage.jpg';6 var oldSrc=$('#photo').attr('src');
6 var oldSrc=$('#photo').attr('src');
7$('h1').hover(
8 function(){
9$('#photo').attr('src',newPhoto.src);
10},
11 function(){
12$('#photo').attr('src',oldSrc);
13});//end hover
14});//end ready
15</script>