Mega Code Archive

 
Categories / JavaScript DHTML / GUI Components
 

Following eyes

//Following Eyes - http://www.btinternet.com/~kurt.grigg/javascript /* Paste this js-link between the <body> </body> tags of your page HTML. <script type="text/javascript" src="followingeyes.js"></script> Make sure that followingeyes.js, pupils.gif and eye.gif are in/uploaded  to the same directory/folder as the web page using the script. */ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Following Eyes</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="content-script-type" content="text/javascript"> <meta http-equiv="content-style-type" content="text/css"> <style type="text/css"> <!-- body{ background:#ffffff; } //--> </style> </head> <body> <script type="text/javascript"> //Following Eyes - http://www.btinternet.com/~kurt.grigg/javascript if  ((document.getElementById) &&  window.addEventListener || window.attachEvent){ (function(){ var e_img = new Image(); e_img.src = "eye.gif";  var p_img = new Image(); p_img.src = "pupils.gif"; var idx = document.images.length; if ( document.getElementById("pic"+idx) || document.getElementById("ppl1"+idx) || document.getElementById("ppl2"+idx)) idx++; document.write('<img id="eyblls'+idx+'" src="'+e_img.src+'" alt="" style="position:absolute;top:0px;left:0px;width:69px;height:34px"/>' +'<img id="ppl1'+idx+'" src="'+p_img.src+'" alt="" style="position:absolute;top:10px;left:11px;width:13px;height:13px"/>' +'<img id="ppl2'+idx+'" src="'+p_img.src+'" alt="" style="position:absolute;top:10px;left:46px;width:13px;height:13px"/>'); var h,w,r,eyeballs,pupil1,pupil2; var d = document; var my = 0; var mx = 0; var fy = 0; var fx = 0; var pix = "px"; var domWw = (typeof window.innerWidth == "number"); var domSy = (typeof window.pageYOffset == "number"); if (domWw) r = window; else{    if (d.documentElement &&    typeof d.documentElement.clientWidth == "number" &&    d.documentElement.clientWidth != 0)   r = d.documentElement;  else{    if (d.body &&    typeof d.body.clientWidth == "number")   r = d.body;  } } function winsize(){ var oh,sy,ow,sx,rh,rw; if (domWw){   if (d.documentElement && d.defaultView &&    typeof d.defaultView.scrollMaxY == "number"){   oh = d.documentElement.offsetHeight;   sy = d.defaultView.scrollMaxY;   ow = d.documentElement.offsetWidth;   sx = d.defaultView.scrollMaxX;   rh = oh-sy;   rw = ow-sx;  }  else{   rh = r.innerHeight;   rw = r.innerWidth;  } h = rh;  w = rw; } else{ h = r.clientHeight;  w = r.clientWidth; } } function scrl(yx){ var y,x; if (domSy){  y = r.pageYOffset;  x = r.pageXOffset;  } else{  y = r.scrollTop;  x = r.scrollLeft;  } return (yx == 0)?y:x; } function mouse(e){ var msy = (domSy)?window.pageYOffset:0; if (!e) e = window.event;      if (typeof e.pageY == 'number'){   my = e.pageY - msy;   mx = e.pageX;  }  else{   my = e.clientY - msy;   mx = e.clientX;  } } function makefollow(){ var sy = scrl(0); var sx = scrl(1); //Keep eyes on screen. var chy = Math.floor(fy-50); if (chy <= 0) chy = 0; if (chy >= h-50) chy = h-50; var chx=Math.floor(fx-34); if (chx <= 0) chx = 0; if (chx >= w-69) chx = w-69; //eyeball1 centre. var c1y = chy+17; var c1x = chx+17; //eyeball2 centre. var c2y = chy+17; var c2x = chx+52; var dy1 = my - c1y; var dx1 = mx - c1x;//80 var d1 = Math.sqrt(dy1*dy1 + dx1*dx1); var dy2 = my - c2y; var dx2 = mx - c2x; var d2 = Math.sqrt(dy2*dy2 + dx2*dx2); var ay1 = my - c1y; var ax1 = mx - c1x; var angle1 = Math.atan2(ay1,ax1)*180/Math.PI; var ay2 = my - c2y; var ax2 = mx - c2x; var angle2 = Math.atan2(ay2,ax2)*180/Math.PI; var dv = 1.7; var onEyeBall1 = (d1 < 17)?d1/dv:10; var onEyeBall2 = (d2 < 17)?d2/dv:10; eyeballs.top = chy+sy+pix; eyeballs.left = chx+sx+pix; pupil1.top = c1y-6+onEyeBall1*Math.sin(angle1*Math.PI/180)+sy+pix; pupil1.left = c1x-6+onEyeBall1*Math.cos(angle1*Math.PI/180)+sx+pix; pupil2.top = c2y-6+onEyeBall2*Math.sin(angle2*Math.PI/180)+sy+pix; pupil2.left = c2x-6+onEyeBall2*Math.cos(angle2*Math.PI/180)+sx+pix; } function move(){  dy = fy += (my-fy) * 0.05;  dx = fx += (mx-fx) * 0.05;  makefollow();  setTimeout(move,30); } function init(){ eyeballs = document.getElementById("eyblls"+idx).style; pupil1 = document.getElementById("ppl1"+idx).style; pupil2 = document.getElementById("ppl2"+idx).style; winsize(); move(); } if (window.addEventListener){  window.addEventListener("resize",winsize,false);  window.addEventListener("load",init,false);  document.addEventListener("mousemove",mouse,false); }   else if (window.attachEvent){  window.attachEvent("onresize",winsize);  window.attachEvent("onload",init);  document.attachEvent("onmousemove",mouse); }  })(); }//End. </script> </body> </html>                          followingeyes.zip( 3 k)