您的位置:首页 > Web前端 > JavaScript

仿265网址导航logo的两只眼睛跟随鼠标移动js实现方法

2012-03-21 15:23 996 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>神秘的眼睛跟随鼠标移动</title>
<style type="text/css">
.eye{
display:inline;
overflow:hidden;
position:relative;
float:left;
margin:50px 0 0 50px;
width:50px;
height:50px;
font-size:50px;
line-height:106%;
+line-height:normal;
cursor:default;
}
@media all and (min-width:0px){
.eye{line-height:normal;}
}
.pupil{
overflow:hidden;
position:absolute;
margin:-5px 0 0 -5px;
width:10px;
height:10px;
line-height:normal;
font-size:10px;
top:50%;
left:50%;
}
</style>
</head>
<body>
<div id="leftEye" class="eye">○<span id="leftPupil" class="pupil">●</span></div>
<div id="rightEye" class="eye">○<span id="rightPupil" class="pupil">●</span></div>
<input name="" id="xy" type="text" />
<script type="text/javascript">
var $=function(o){return document.getElementById(o)}
var leftEye=$("leftEye");
var rightEye=$("rightEye");
var leftPupil=$("leftPupil");
var rightPupil=$("rightPupil");
var xy=$("xy");
document.documentElement.onmousemove=function(e){
var e=window.event||e;
var eeX=e.clientX, eeY=e.clientY;
track(leftEye,leftPupil,eX,eY);
track(rightEye,rightPupil,eX,eY);
}
function track(o,i,eX,eY){
var ooL=o.offsetLeft;
var ooT=o.offsetTop;
var ooW=o.offsetWidth;
var ooH=o.offsetHeight;
var ooCW=o.clientWidth;
var ooCH=o.clientHeight;
var oX=oL+oW/2;
var oY=oT+oH/2;
var eXeX=eX-oX;
var eYeY=eY-oY;
var eXY,iL,iT;
if(eX!=0&&eY!=0){
eXeXY=eX/eY;
var r=oCW/2-12;
var R=Math.sqrt(eX*eX+eY*eY);
var rR=R/5>r?r:R/5;
var iL=Math.sqrt(rR*rR/(1+1/(eXY*eXY)));
if(eX<0)iL=-iL;
var iT=iL/eXY;
i.style.left=(iL+oCW/2)+"px";
i.style.top=(iT+oCH/2)+"px";
}
xy.value=eX+","+eY;
}
</script>
</body>
</html>





本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/812706
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: