作家
登录

javascript动画效果类封装代码

作者: 来源:www.28hudong.com 2013-03-30 03:18:41 阅读 我要评论

<input id=output3 style="position:absolute;top:300;left:300;"/> <input id=output1 /> <input id=output2 /> <br/> <input id=output4 /> <script> function Animation(target,targetProperty,closure,precision) { closure=closure||function(x){return x;}; precision=precision||10; this.handle; var beginTime=new Date(); var stopTime=new Date(); this.Begin=function(){ beginTime=new Date(); this.handle=setInterval( function(){ var now=new Date(); target[targetProperty]=closure(now.getTime()-beginTime.getTime()); }, precision ); } this.Continue=function(){ var now=new Date(); beginTime.setTime(now.getTime()-stopTime.getTime()+beginTime.getTime()); this.handle=setInterval( function(){ var now=new Date(); target[targetProperty]=closure(now.getTime()-beginTime.getTime()); }, precision ); } this.Stop=function(duration){ clearInterval(this.handle); if(duration===undefined) { stopTime=new Date(); duration=stopTime.getTime()-beginTime.getTime(); } else stopTime.setTime(beginTime.getTime()+duration) target[targetProperty]=closure(duration); } } function StoryBoard(Duration,onfinish,flag) { onfinish=onfinish||function(){}; var r=new Array(); r.appendAnimation=function(animation) { if(animation instanceof Animation) this.push(animation); } r.removeAnimation=function(animation) { for(var i=0;i<r.length;i++) { if(r[i]==animation) { r.splice(i,1); break; } } } r.start=function(){ for(var i=0;i<r.length;i++) { r[i].Begin(); } setTimeout( function(){ for(var i=0;i<r.length;i++) { r[i].Stop(Duration); } }, Duration ); onfinish(); } return r; } //////////////////////////////下面是使用方法//////////////////////////////// function $(id) { return document.getElementById(id); } var a1=new Animation($("output1"),"value"); var a2=new Animation($("output2"),"width",function(x){return Math.floor(x/10);}); var a3=new Animation($("output3").style,"filter",function(x){return "alpha(opacity="+Math.floor(x/5000*100)+")";}); var a4=new Animation($("output4").style,"width",function(x){return Math.floor(x*x*x/50000/5000)+"px";}); var s=new StoryBoard(5000); s.appendAnimation(a1); s.appendAnimation(a2); s.appendAnimation(a3); s.appendAnimation(a4); s.start(); </script> <pre> output1是改变value output1是改变宽度 output3是淡入 output4是带缓动的宽度 </pre>

  推荐阅读

  javascript实现的一个自定义长度的文本自动换行的函数。

很多朋友在制作网页过程中总是发现某些时候一些英文会把原来好好的表格撑开而导致变形,虽然可以使用style="table-layout:fixed;word-wrap:break-word;word-break:break-all" 来解决这个问题,但有些时候会导致内容>>>详细阅读


本文标题:javascript动画效果类封装代码

地址:http://www.17bianji.com/kaifa2/JS/30129.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)