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

Javascript
javascript秒数倒计时自动跳转代码
js动态生成按钮并动态生成8位随机数
JS旋转图片阵类
javascript md5加密代码
window.onload的页面加载技巧
javascript显示隐藏层比较不错的方法分析
javascript优先加载笔记代码
JavaScript for in锚点的动态创建
初学JavaScript第二章
javascript类型File的Input按钮功能研究
JavaScript下申明对象的几种方法小结
一个jquery的弹出层的插件
IE与firefox之jquery用法区别
判断JavaScript对象是否可用的最正确方法分析
javascript布局查看器效果代码
js模拟画笔效果
无废话JavaScript教程(全集)
执行iframe中的javascript方法
解决function函数内的循环变量
jQuery弹出层插件简化版代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 230 ::
收藏到网摘: 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>