注册 | 登陆
您的位置:阿里西西 > 网页特效 > 实例特效 > 详细内容

跟随鼠标转动的眼球效果特效

  稿源:互联网   2022-06-17 10:31:30   点击:   撤稿纠错
眼珠会跟随鼠标的光标在眼眶范围内滚动,感觉就像眼珠一直盯着鼠标的操作...

以下讨论的是和眼球相关的跟随鼠标转动的眼球效果特效 教程文章,内容是本站精心挑选整理的教程,希望对广大的网友给到帮助,下面是详细内容:

[code]<!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">
*{margin:0;padding:0;}
.mbox{background:transparent url(http://www.itref.cn/uploads/allimg/100622/1_100622134201_1.gif) no-repeat scroll left top;width:150px;height:50px;position:relative;border:1px solid #FF0000;margin:0 auto;}
.mbox span{background-color:#000;font-size:0;display:block;width:3px;height:3px;overflow:hidden;position:absolute;}
</style>
</head>
<body>
<div style="height:100px;"></div>
<div id="mbox" class="mbox">
    <span style="left:105.5px;top:23.5px;"></span>
    <span style="left:125.5px;top:23.5px;"></span>
</div>
<div style="height:500px;"></div>
<script type="text/javascript">
function getPos(obj){
    var p={};
 p.x=obj.offsetLeft;
 p.y=obj.offsetTop;
 while(obj=obj.offsetParent){
     p.x+=obj.offsetLeft;
  p.y+=obj.offsetTop;
 }
 return p;
}
function each(objs,f){
    for(var i=0;i<objs.length;i++)f(i); 
}
function act(){
    var eyes=document.getElementById('mbox').getElementsByTagName('span');
 var cr=10;
 var pr=1.5;
 var of=150;
 var cssp=[];
    cssp[0]={x:105.5,y:23.5};
 cssp[1]={x:125.5,y:23.5};
 var np=[]; 
    each(eyes,function(i){
     var p=getPos(eyes[i]);
  p.x+=pr;
  p.y+=pr;
     np[i]=p;  
 });
 document.getElementsByTagName('body')[0].onmousemove=function(e){
  var e=e||window.event;
  var mp={x:e.clientX,y:e.clientY};
        each(eyes,function(i){
      var p=track(mp,np[i]);   
   p.x+=cssp[i].x-pr;
            p.y+=cssp[i].y-pr;
   eyes[i].style.left=p.x+"px";
   eyes[i].style.top=p.y+"px";   
  });
 }
 function track(m,n){
        var p={x:0,y:0}
  lf=m.x-n.x;
  t=m.y-n.y;
  var tmp=cr;
        tmp*=longRate(lf,t);
  p.x=lf/Math.abs(lf)*Math.sqrt(tmp*tmp/(1+t*t/(lf*lf)));
  p.y=t/Math.abs(t)*Math.sqrt(tmp*tmp/(1+lf*lf/(t*t)));  
  return p;
 }
 function longRate(lf,t){
     var tmp=Math.sqrt(lf*lf+t*t);
  var rate=1;
  if(tmp>=of){
      rate=1;
  }else if(tmp<=pr){
      rate=0;
  }else{
      rate=tmp*pr/of;
   rate=rate>1?1:rate;
  }
  return rate;
 }
}
act();
</script>
</body>
</html>[/code]

gongle的小工具——眼睛,以及265导航页logo中的眼睛,都是通过javascript来实现的。当鼠标在页面中滑动时,眼珠会跟随鼠标的光标在眼眶范围内滚动,感觉就像眼珠一直盯着鼠标的操作。

其中很关键的部分是算法,这个需要我们具备一些数学上的几何知识。

• 直角三角形三边符合:直角边1的平方+直角边2的平方=斜边的平方,如果对直角边、斜边不明白,也可以这样理解,短边1的平方+短边2的平方=长边的平方
• 相似的两个三角形临近两边之比相等


关于跟随鼠标转动的眼球效果特效的内容写到这里就结束啦,您可以收藏本页网址https://js.alixixi.com/a/2010062560019.shtml方便下次再访问哦。