网站“眼睛”跟着鼠标走

技术与开发

最近老夏在265网站上看到一个非常有趣的功能:网站LOGO上有双会动的眼珠,自己鼠标向什么方向移动,眼珠就跟随鼠标的方向动。老夏想给自己的网站添加这个功能,给访客一个惊喜。老夏模仿制作了半天,也没有成功。

29-f13-1-1.jpg
移动前                 移动后

要模仿设计一个“眼”随“鼠”动的功能并不难,方法如下:先要准备三张GIF图片,一张背景LOGO图片、一张眼珠图片和一张遮照图,然后需要编写代码判断鼠标的位置,并根据鼠标的位置相应地移动眼珠,形成眼珠跟着鼠标走的感觉。利用这种跟随原理,我们还可以赋予图片或广告条跟随鼠标移动的功能。

添加图片ID

判断出鼠标位置后,要将位置信息反馈给LOGO上的眼珠,因此要给图片添加ID,方便调用。用记事本打开网页的源文件,在〈body>〈/body>区间找到LOGO代码,进行如下修改:

〈H1 id=Logo265〉〈A href="http://www.rgjy.net/"〉〈IMG id=logoimg alt="" src="images/logo265.gif" border=0〉〈/A〉〈/H1〉/*H1和IMG的ID可自行修改,但需要跟下面代码一致*/

让LOGO中的眼珠动起来

在页面〈head〉〈/head〉区添加眼珠跟随鼠标一起移动的代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

〈SCRIPT type=text/javascript〉

function EYES_init()/*初始化函数*/

{

var a = Mb("Logo265"), b = Nb(a, "a");/*获取LOGO*/

Eb = Nb(a, "img");

if ( - 1 == Eb.src.indexOf(Fb))

{

return

}

Y = U("img");

Z = U("img");

$ = U("img");

Y.border = (Z.border = ($.border = 0)); /*设置边框*/

Y.src = "images/eyeballmask.gif";/*设置遮照图片位置*/

Z.src = ($.src = "images/pupil265.gif");/*设置眼珠图片位置*/

Jb();

m(Y[r], m(Z[r], m($[r], "absolute")));/*设置图片为相对位置*/

ca(Y[r], 90);

ca(Z[r], ca($[r], 100));

b.appendChild(Y);

b.appendChild(Z);

b.appendChild($);

document.onmousemove = Ib; /*鼠标移动,调用函数Ib*/

T(window, "pageshow", Jb);

T(window, "resize", Jb)

}

function Jb()

{

var a = Ob(Eb);

mb = a.x;

nb = a.y;

ob = Eb.width;

pb = Eb[p];

var b = "px";

o(Y[r], mb + qb + b);

Y[r].top = nb + rb + b;

o(Z[r], a.x + wb + b);

Z[r].top = a.y + xb + b;

o($[r], a.x + yb + b);

$[r].top = a.y + zb + b

}

function Ob(a)

{

var b = a.offsetLeft, c = a.offsetTop;

if (a.offsetParent != null)

{

var d = Ob(a.offsetParent);

b += d.x;

c += d.y;

}

return{x:b,y:c}

}

function T(a, b, c)

{

var d = "on" + b;

if (a.addEventListener)

{

a.addEventListener(b, c, false)

}

else if (a.attachEvent)

{

a.attachEvent(d, c)

}

else

{

var g = a[d];

a[d] = function()

{

var e = g.apply(this, arguments), f = c.apply(this, arguments);

return e == undefined ? f : (f == undefined ? e : f && e)

经过上面设置, LOGO的眼珠就可以跟随鼠标一起移动了。

编后

这种眼珠跟着鼠标走的效果,只是一种噱头,实用性不强。其实我们可以制作图片的鼠标跟随效果,例如鼠标向右偏多少,就显示下一张图片,向左移动就显示上一张图片。