265 LOGO 会动的眼睛 详细版
来源:百度文库 编辑:神马文学网 时间:2024/04/19 16:15:07
网上有代码,但并没有代码的参数说明,根本用不了。我发布一个目前最详细的。
简单演示地址http://www.snscool.com/265logo/
准备三张图片,第一张是正常的LOGO,第二张是挡住LOGO上眼睛的图片,第三张是眼睛的图片(一般就是一个小黑点)。
下面是JS文件代码,网上能找到。怀疑google的JS程序不是手写的,是编译器生成的。
简单演示地址http://www.snscool.com/265logo/
准备三张图片,第一张是正常的LOGO,第二张是挡住LOGO上眼睛的图片,第三张是眼睛的图片(一般就是一个小黑点)。
下面是JS文件代码,网上能找到。怀疑google的JS程序不是手写的,是编译器生成的。
- function m(a, b)
- {
- return a.position = b
- }
- function o(a, b)
- {
- return a.left = b
- }
- function ca(a, b)
- {
- return a.zIndex = b
- }
- var p = "length", r = "style", s = "body", x, y;
- function U(a)
- {
- return document.createElement(a)
- }
- var Y, mb, nb, ob, pb, Z, $;
- var qb = 20, rb = 22, sb = 20, tb = 28, ub = 33, vb = 28, wb = 22, xb = 27, yb = 31, zb = 27, Ab = 6, Bb = 4, Cb = 1, Db = 200;
- var Eb;
- var Fb = "http://www.snscool.com/265logo/images/logo.gif";
- function Gb(a)
- {
- var b = 0, c = 0;
- if (a.pageX || a.pageY)
- {
- b = a.pageX;
- c = a.pageY
- }
- else if (a.clientX || a.clientY)
- {
- b = a.clientX + document[s].scrollLeft;
- c = a.clientY + document[s].scrollTop
- }
- return [b, c]
- }
- function Ib(a)
- {
- Jb();
- a = a || document.parentWindow.event;
- var b = Gb(a), c = b[0], d = b[1];
- Kb(c, d, Z, sb, tb);
- Kb(c, d, $, ub, vb)
- }
- function Kb(a, b, c, d, g)
- {
- var e = a - d - mb, f = (b - g - nb) * (Ab / Bb), j = Math.sqrt(Math.pow(e, 2)
- + Math.pow(f, 2)), h, l;
- if (j == 0)
- {
- h = d;
- l = g
- }
- else
- {
- var B = Math.sqrt(Math.pow(j, 2) + Math.pow(Db, 2)), E = Ab * j / B;
- h = E * e / j + d + mb;
- l = E * f / j / (Ab / Bb) + g + nb
- }
- h -= Cb;
- l -= Cb;
- o(c[r], parseInt(h, 10) + "px");
- c[r].top = parseInt(l, 10) + "px"
- }
- function EYES_init()
- {
- var a = Mb("logo"), b = Nb(a, "a");
- 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 = "http://www.snscool.com/265logo/images/dang.gif";
- Z.src = ($.src = "http://www.snscool.com/265logo/images/eye.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;
- 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)
- }
- }
- };
- function Mb(a)
- {
- return document.getElementById(a)
- }
- function Nb(a, b)
- {
- return a.getElementsByTagName(b)[0]
- }
- EYES_init();
- qb 遮挡图片横坐标
- rb 遮挡图片纵坐标
- sb 左眼图片横坐标
- tb 左眼图片纵坐标
- ub 右眼图片横坐标
- vb 右眼图片纵坐标
- wb 左眼图片初始横坐标
- xb 左眼图片初始纵坐标
- yb 右眼图片初始横坐标
- zb 右眼图片初始纵坐标
- Ab 眼睛运动范围(椭圆形)横轴长度
- Bb 眼睛运动范围(椭圆形)纵轴长度
- Cb 作用不详,保持默认即可
- Db 眼睛鼠标运动的灵敏程度
- Fb logo图片地址
- Y.src 遮挡眼睛的图片地址
- Z.src 眼睛的图片地址
下面