当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript动画效果类封装代码

Javascript
IE和Firefox在JavaScript应用中的兼容性探讨
在线演示常用javascript特效
Meta 标签生成器
动态生成的IFRAME,设置SRC时的问题解决分析
CSS常用网站布局实例
JS动画效果代码2
JS动画效果代码3
js COL能很好的控制表格的列
readonly和disabled的区别
在CSS里写复杂的JavaScript脚本
用JavaScript操作WinRar
javascript add event remove event
HTML中Select不用Disabled实现ReadOnly的效果
用JavaScript调用WebService的示例
大家未必知道的Js技巧收藏
js批量上传界面的实现
javascript倒计时效果代码,可以方便参数调用
能在网页中写字和能擦写的js程序
javascript背投广告代码的完善
js函数般调用正则

Javascript 中的 javascript动画效果类封装代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 123 ::
收藏到网摘: n/a

<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>