JS实现放烟花效果
本文实例为大家分享了JS实现放烟花效果的具体代码,供大家参考,具体内容如下
放烟花——欣欣博客
move.js
/** * *@param{Object}obj目标对象 *@param{Object}json要改变的属性 *@param{Object}extend{buffer,callback}当buffer为true时为弹性运动 *callback会在运动结束时,被执行 *animate(obj,{top:500,left:300},{callback:function(){},buffer:true}) */ functionanimate(obj,json,extend){ extend=extend||{}; if(obj.isMoving){ return; }else{ stop(); obj.isMoving=true; } //obj=Object.assgin(obj,extend); obj.buffer=extend.buffer; obj.callback=extend.callback; obj.timerlist={}; //为每一个属性添加一个定时器 for(varattrinjson){ (function(attr){ obj.timerlist[attr]={speed:0}; obj.timerlist[attr].timer=setInterval(function(){ //首先得到当前值 variNow=0; if(attr=="opacity"){ iNow=getStyle(obj,attr)*100; }else{ iNow=getStyle(obj,attr); } varspeed=obj.timerlist[attr].speed; //根据目标值,计算需要的速度 if(obj.buffer==true){ speed+=(json[attr]-iNow)/5; speed*=0.75; }else{ speed=(json[attr]-iNow)/5; } //当无限接近目标值时,停止定时器 if(Math.abs(iNow-json[attr])<0.5){ clearInterval(obj.timerlist[attr].timer); deleteobj.timerlist[attr]; if(getObjLength(obj.timerlist)==0){//所有定时器已停止 stop(); obj.callback?obj.callback():""; } }else{ //根据速度,修改当前值 if(attr=="opacity"){ obj.style.opacity=(iNow+speed)/100; obj.style.filter='alpha(opacity='+parseFloat(iNow+speed)+')'; }else{ obj.style[attr]=iNow+speed+"px"; } obj.timerlist[attr].speed=speed; } },30); })(attr); } functionclearTimer(){ for(variinobj.timerlist){ clearInterval(obj.timerlist[i]); } } functiongetStyle(obj,attr){ if(obj.currentStyle){ returnisNaN(parseFloat(obj.currentStyle[attr]))?obj.style[attr]=0:parseFloat(obj.currentStyle[attr]); }else{ returnisNaN(parseFloat(getComputedStyle(obj,null)[attr]))?obj.style[attr]=0:parseFloat(getComputedStyle(obj,null)[attr]); } } functiongetObjLength(obj){ varn=0; for(variinobj){ n++; } returnn; } functionstop(){ clearTimer();//清除所有定时器 obj.isMoving=false; } }
更多JavaScript精彩特效分享给大家:
Javascript菜单特效大全
javascript仿QQ特效汇总
JavaScript时钟特效汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。