永发信息网

javascrip鼠标特效源代码解释

答案:1  悬赏:50  手机版
解决时间 2021-04-29 08:53
  • 提问者网友:捧腹剧
  • 2021-04-29 01:49

如下的javascrip源代码,谁可以看了鼠标特效后帮我具体解释一下每一个函数等的作用。还有就是一个额外的问题,为什么特效里出现的星星是在鼠标旁边出现而不是在别的地方出现呢,它是怎样通过调用源代码实现的?


</body>
</html>
<script language="JavaScript">
if (document.all){

colours=new Array('ff0000','00ff00','3366ff','ff00ff','ffa500','ffffff','fff000')



amount=colours.length;
YgetDelay=0,XgetDelay=0,Ydelay=0,Xdelay=0,step=0.2,currStep=0,my=0,mx=0;
document.write('<div id="ie" style="position:absolute;top:0;left:0;"><div style="position:relative">');


for (i=0; i < amount; i++)
document.write('<div id="iestars" style="position:absolute;top:0px;left:0px;height:50px;width:50px;font-

family:Courier New;font-size:5px;color:'+colours[i]+';padding-top:20px;text-align:center">.</div>');


document.write('</div></div>');
ini=1;
gstep=1;
function iMouse(){
my=event.y;mx=event.x;
}
document.onmousemove=iMouse
function dim(){
ini-=gstep;
dt=setTimeout('dim()',10);
if (ini < 2){
clearTimeout(dt);
glow();
}
}
function glow(){
ini+=gstep;
gt=setTimeout('glow()',10);
if (ini > 14){
clearTimeout(gt);
dim();
}
}
function stars(){
ie.style.top=document.body.scrollTop;
for (i=0; i < amount; i++)
{
var layer=iestars[i].style;
layer.filter='glow(color='+colours[i]+', strength='+ini+')';
layer.top= Ydelay+100*Math.sin((5*Math.sin((currStep-15.99)/10))+i*70)*Math.sin((currStep)/10)*Math.cos((currStep

+i*25)/10);
layer.left=Xdelay+180*Math.cos((5*Math.sin((currStep-15.99)/10))+i*70)*Math.sin((currStep)/10)*Math.cos((currStep

+i*25)/10);
}
currStep+=step;
}
function delay(){
Ydelay = YgetDelay+=(my-YgetDelay)*1/20;
Xdelay = XgetDelay+=(mx-XgetDelay)*1/20;
stars();
setTimeout('delay()',10);
}
delay();
glow();
}
</script>

最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-04-29 02:52

function iMouse(){
my=event.y;mx=event.x;
}
document.onmousemove=iMouse 这两句话就可以解答你额外的那个问题


当鼠标执行onmousemove的事件时获取了其x 和y的坐标。其他的方法都是通过对这个事件的获取通过函数计算出每个star的变换方式以及变换速率 其实那五个star都是div 具体怎么样还是要细细体会 从函数的调用过程去一部一部看 我很难说清楚 不好意思呵呵

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯