跟隨鼠標轉動的眼睛

- 中國WEB開發者網絡 (http://www.webasp.net)
-- 網頁特效 (http://www.webasp.net/javascript/)
--- 跟隨鼠標轉動的眼睛 (http://www.webasp.net/javascript/1/281.htm)
-- 發佈日期: 2004-08-19
<!-- 網頁特效代碼由[中國WEB開發者網絡:http://www.ChinaWebDev.com]提供! -->
<!-- 要實現此效果需要 1 個步驟: -->

<!-- 第 1 步: -->
<!-- 把下面的代碼加到<BODY></BODY>區域中: -->

<script>

// Defaults
var jseyesimg="images/281/jseyes.gif";
var jseyeimg="images/281/jseyeblue.gif";
var jseyeslink="http://www.webasp.net";


// Internal
var jseyeso=null, jseye1=null, jseye2=null;


// Browser detection

// Global variables
var browserversion=0.0;
var browsertype=0; // 0: unknown; 1:MSIE; 2:NN

// Return true if MSIE or NN detected
function browserdetect() {
var agt= navigator.userAgent.toLowerCase();
var appVer= navigator.appVersion.toLowerCase();
browserversion= parseFloat(appVer);
var iePos= appVer.indexOf('msie');
if (iePos!=-1) browserversion= parseFloat(appVer.substring(iePos+5, appVer.indexOf(';',iePos)));
var nav6Pos = agt.indexOf('netscape6');
if (nav6Pos!=-1) browserversion= parseFloat(agt.substring(nav6Pos+10))
browsertype= (iePos!=-1) ? 1 : (agt.indexOf('mozilla')!=-1) ? 2 : 0;
return(browsertype>0);
}

browserdetect();



// General utils

// Find object by name or id
function jseyesobj(id) {
var i, x;
x= document[id];
if (!x && document.all) x= document.all[id];
for (i=0; !x && i<document.forms.length; i++) x= document.forms[i][id];
if (!x && document.getElementById) x= document.getElementById(id);
return(x);
}


// Move eyes
function jseyesmove(x, y) {
var ex, ey, dx, dy;
if (jseyeso && jseye1 && jseye2 && jseyeso.style) {
ex=jseyeso.offsetLeft+46; ey=jseyeso.offsetTop+58;
dx=x-ex; dy=y-ey;
r=(dx*dx/49+dy*dy/289<1) ? 1 : Math.sqrt(49*289/(dx*dx*289+dy*dy*49));
jseye1.style.left= r*dx+36.5; jseye1.style.top= r*dy+44;
ex+=56; dx-=56;
r=(dx*dx/49+dy*dy/289<1) ? 1 : Math.sqrt(49*289/(dx*dx*289+dy*dy*49));
jseye2.style.left= r*dx+92.5; jseye2.style.top= r*dy+44;
}
}



// Main
function jseyes() {
var img;
var x, y, a=false;

if (arguments.length==2) {
x= arguments[0];
y= arguments[1];
a= true;
}

if (browsertype>0 && browserversion>=5) {
img= "<div id='jseyeslayer' style='position:"+
(a ? "absolute; left:"+x+"; top:"+y : "relative")+
"; z-index:5; width:150; height:150 overflow:hidden'>"+
"<div id='jseye1' style='position:absolute; left:36; top:44; z-index:6; width:21; height:29'>"+
"<img src='"+jseyeimg+"' width=21 height=29 onClick=\"location.href='"+jseyeslink+"'\">"+
"</div>"+
"<div id='jseye2' style='position:absolute; left:92; top:44; z-index:6; width:21; height:29'>"+
"<img src='"+jseyeimg+"' width=21 height=29 onClick=\"location.href='"+jseyeslink+"'\">"+
"</div>"+
"<img src='"+jseyesimg+"' width=150 height=150 onClick=\"location.href='"+jseyeslink+"'\">"+
"</div>";
document.write(img);
jseyeso=jseyesobj('jseyeslayer');
jseye1=jseyesobj('jseye1');
jseye2=jseyesobj('jseye2');

switch (browsertype) {
case 1:
document.onmousemove=jseyesmousemoveIE;
break;
case 2:
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=jseyesmousemoveNS;
break;
}
}
}


// Mouse move events
function jseyesmousemoveNS(e) {
jseyesmove(e.pageX, e.pageY);
//return(false);
}
function jseyesmousemoveIE() {
jseyesmove(event.clientX+document.body.scrollLeft, event.clientY+document.body.scrollTop);
//return(false);
}



jseyes();

</script>


webasp.net