本文在前面几个运动框架的基础上,主要解释了链运动,即运动后运动,例如,一个盒子在许多
网站上的出现和
退出:首先,当它出现时,它变得更宽,然后更高,然后在退出时变短和变窄。
以前的模型是:
startmove(obj,JSON);
现在改为:
startmove(obj,JSON,FN);
在第一次运动的结束,FN的实施();FN是一种传递
参数,这个参数是一个定时器
功能清理手动
操作后(FN);如果你想使用的链运动,即在FN叫startmove(obj,JSON FN),然后调用startmove在FN里面(obj,JSON,FN),可以一直玩下去
运动框架(五):完美运动的链运动
{ div
宽度:100px;
身高:100px;
背景:橙色;
保证金:10px;
浮点数:左;
}
无功odiv = document.getelementbyid('div1);
odiv.onmouseover =
函数(){
startmove(odiv,{宽度:300,不透明度:30 },函数()){
startmove(odiv,{身高:500 });
});
};
odiv.onmouseout =函数(){
startmove(odiv,{ 100 },功能高度:()){
startmove(odiv,{宽度:100,不透明度:100 });
})
};
功能getstyle(obj,ATTR){
如果(obj。currentstyle){
返回的对象。currentstyle {
属性};
{人}
返回getcomputedstyle(obj,null){属性};
}
}
功能startmove(obj,JSON,FN){
ClearInterval(obj。定时器);
obj.timer = setInterval(){()函数(
VaR bstop =真;
对于(JSON var attr){
var = 0;
如果(attr = 'opacity){
电流= math.round(parseFloat(getstyle(obj,ATTR))* 100);
{人}
电流= parseInt(getstyle(obj,ATTR));
}
如果(当前)!= { }){ JSON对象
bstop = false;
}
速度=(JSON {属性} - CUR) / 10;
速度=速度> 0 math.ceil(速度):Math.floor(速度);
当前速度;
如果(attr = 'opacity){
obj.style.filter = 'alpha(透明度:+我+的);
obj.style.opacity =电流 / 100;
{人}
obj。风格{属性} =电流+ 'px;
}
}
如果(bstop){
ClearInterval(obj。定时器);
如果(FN)FN();
}
},30);
}
运动中的最终框架如下,motionframe.js:
功能getstyle(obj,ATTR){
如果(obj。currentstyle){
返回的对象。currentstyle {属性};
{人}
返回getcomputedstyle(obj,null){属性};
}
}
功能startmove(obj,JSON,FN){
ClearInterval(obj。定时器);
obj.timer = setInterval(){()函数(
VaR bstop =真;
对于(JSON var attr){
var = 0;
如果(attr = 'opacity){
电流= math.round(parseFloat(getstyle(obj,ATTR))* 100);
{人}
电流= parseInt(getstyle(obj,ATTR));
}
如果(当前)!= { }){ JSON对象
bstop = false;
}
速度=(JSON {属性} - CUR) / 10;
速度=速度> 0 math.ceil(速度):Math.floor(速度);
当前速度;
如果(attr = 'opacity){
obj.style.filter = 'alpha(透明度:+我+的);
obj.style.opacity =电流 / 100;
{人}
obj。风格{属性} =电流+ 'px;
}
}
如果(bstop){
ClearInterval(obj。定时器);
如果(FN)FN();
}
},30);
}
以上是本文的全部内容,希望能对您有所帮助,希望大家多多
支持。