现在的位置: 首页 > 综合 > 正文

onMouseover的灵活运用

2013年04月01日 ⁄ 综合 ⁄ 共 4492字 ⁄ 字号 评论关闭

很多有过页面制作经验的人,为了丰富页面的动感,在设计数量众多的按钮时,通常都喜欢采用onMouseover这个函数。其效果就是当鼠标划过按钮时,按钮看起来会有一种起伏变化,从而成为一种独特的信息提示。

  关于onMouseover可以有四种基本的表现形式:一图对一图、一图对多图、多图对一图、多图对多图。下面就让我们一一道来:

  一图控制一图

  开题中我们提到的这种效果就是一图对一图,它仅仅控制图自身的变化。

  当鼠标划过图a的时候便换成图c,当鼠标划过图b的时候便换成图d。因为图a与图c的不同,看起来就会有视觉上的动感。而这在现在的页面设计中也是最常用的一种动态效果。

  代码如程序1所示范:

  <HEAD>

  <script language="JavaScript">

   var imgover= new Array(2);

   var imgout=new Array(2);

   for(i=1;i<=2;i++)

   {

   imgover[i]="firstb"+i+".gif";

   imgout[i]="firsta"+i+".gif";

   }

   function over(i)

   {

   if(document.images)

   document.images["image"+i].src="http://www.7dspace.com/doc/45/2005-08-16/imgover[i];"

   }

   function out(i)

   {

   if(document.images)

   document.images["image"+i].src="http://www.7dspace.com/doc/45/2005-08-16/imgout[i];"

   }

  </script>

  

  </HEAD>

  <BODY>

  <a href="http://www.7dspace.com/doc/45/2005-08-16/#a" onMouseover="over(1)" onMouseout="out(1)">

  <img name="image1" src="http://www.7dspace.com/doc/45/2005-08-16/firsta1.gif" border="0"></a>

  <a href="http://www.7dspace.com/doc/45/2005-08-16/#a" onMouseover="over(2)" onMouseout="out(2)">

  <img name="image2" src="http://www.7dspace.com/doc/45/2005-08-16/firstb1.gif" border="0"></a>

  </BODY>

  </HTML>

  (程序1)

  参看:http://www.gameclub.com.cn(游戏信息网)

  我们还可以通过一图控制另一图的变化,让它变得更花哨一点。比如当鼠标划过图a的时候,让图c发生一些变化,这样一看起来会有一种视觉上的跳跃感。

  参看:http://www.gliding.org.cn(华联滑翔伞俱乐部)

  一图控制多图

  当你的鼠标指针从“数字”按钮上划过时,图2上显示的是三张数字的图象,当你的鼠标指针从“字母”上划过时,图2显示的是图3中三张字母的图片。

  代码如程序2所示范:

  <HTML>

  <HEAD>

  <script language="JavaScript">

   var overnum= new Array(3);

   var overletter=new Array(3);

   for(i=1;i<=3;i++)

   {

   overnum[i]="cyan0"+i+".jpg";

   overletter[i]="cyan"+i+".gif";

   }

   function overn()

   {

   if(document.images)

   {

   document.images["image1"].src="http://www.7dspace.com/doc/45/2005-08-16/overnum[1];"

   document.images["image2"].src="http://www.7dspace.com/doc/45/2005-08-16/overnum[2];"

   document.images["image3"].src="http://www.7dspace.com/doc/45/2005-08-16/overnum[3];"

   }

   }

   function overl()

   {

   if(document.images)

   {

   document.images["image1"].src="http://www.7dspace.com/doc/45/2005-08-16/overletter[1];"

   document.images["image2"].src="http://www.7dspace.com/doc/45/2005-08-16/overletter[2];"

   document.images["image3"].src="http://www.7dspace.com/doc/45/2005-08-16/overletter[3];"

   }

   }

  </script>

  

  </HEAD>

  <BODY>

  

  <img name="image1" src="http://www.7dspace.com/doc/45/2005-08-16/cyan01.jpg" border="0"></a>

  <img name="image2" src="http://www.7dspace.com/doc/45/2005-08-16/cyan02.jpg" border="0"></a>

  <img name="image3" src="http://www.7dspace.com/doc/45/2005-08-16/cyan03.jpg" border="0"></a></br>

  <a href="http://www.7dspace.com/doc/45/2005-08-16/#a" onMouseover="overn()">数字</a>

  <a href="http://www.7dspace.com/doc/45/2005-08-16/#a" onMouseover="overl()">字母</a>

  </BODY>

  </HTML>

  (程序2)

  想想看如果把这种效果用到自己的页面上,是不是也会有“牵一发而动全局”的快感呢?整个页面再也不是单一的罗列,简洁明快的风格一定会让你赏心悦目。具体的效果可以看http://www.263.net.cn/capital/?MIval=C07_09 里的钓鱼栏目。

  多图控制一图

  如果页面中有四个栏目,而每一个栏目都有一大段的介绍,你是否会无奈的采取以下方法:将所有的文字紧密地压缩排列在一个页面上?现在不必了。告诉你个简便的方法就是用onMouseover来实现。

  如图4所示,页面有四个独立栏目,鼠标停留在哪个栏目上,图4的方框中就会显示这个栏目的内容介绍。到http://www.263.net.cn/capital/C05_18(中华传统养生)看看,你的体会将更深刻。至于源程序读者可以自行领会。

  多图控制多图

  多图控制多图是第二种情况与第三种情况的中和,也是最灵活的一种应用。如果你在合成页面的时候用的是DREAMWEAVER软件。你会发现在DREAMWEAVER里你尽可以随心所欲的去设计。下面就跟着我在DREAMWEAVER2中实现你的想法吧。

  1、选中控制对象;

  2、打开Behaviours工具框;

  3、点击'+'增加功能,选"swap image",弹出"swap image"对话框;

  4、功能框中有两个选项"images"和"set source to"。在"images"中选择被控制的图,在"set source to"中设置控制图的变化对象。

  虽然用draemweaver工具来实现onMouseover效果非常方便,但是页面的字节数一定会大于你手工编写的页面字节数。如何取舍就看你自己决定了。

  如果你的控制图与被控制图在不同的两个FRAME中,你又如何来实现呢?其实很简单:

  function tabOn(i)

   {

   if(document.images)

   {

   document.images["sr"+i].src="http://www.7dspace.com/doc/45/2005-08-16/ftover[i];" (同Frame内)

   parent.main.document.images["mainsrc"].src="http://www.7dspace.com/doc/45/2005-08-16/ftovernext[i];"

   (不同Frame内) }

   }

  这其中的窍门就是将另一个Frame的名字定义在控制图的前面。 
 以下为img 加上的 css 及 onmouseover 和 onmouseout 事件如何能为 imagebutton 加上?

img 的属性

<img src="images/unread.gif" border="0" class="CUEditor_OutColor" onmouseover="this.className='CUEditor_OverColor';" onmouseout="this.className='CUEditor_OutColor';" hspace="2" vspace="0" title="未读信息"/>

我想让上述的 class="CUEditor_OutColor" onmouseover="this.className='CUEditor_OverColor';" onmouseout="this.className='CUEditor_OutColor';"

属性为以下 imagebutton 加上 ,
<asp:imagebutton id="ImageButton1" runat="server" ImageUrl="images/deleteMessage.gif"></asp:imagebutton>

要加在什么地方呢?

vs.net中 imagebutton 根本就没有 onmouseover 和 onmouseout 的属性啊?

 

this.ImageButton1.Attributes.Add("onmouseover","this.className='CUEditor_OverColor'");
this.ImageButton1.Attributes.Add("onmouseout","this.className='CUEditor_OutColor''");

抱歉!评论已关闭.