在尝试将变量传递给我的步进函数以处理一些最终的跨浏览器后备动画时遇到了墙。我在这里建立了一个通用的动画方法:
Animator:function(obj,aniArgs,duration,aniEasArgs,delay,stepFunction,completeFunction){
obj.stop(true,true).animate(aniArgs,
{duration:parseInt(duration,10),queue:false,specialEasing:aniEasArgs,
step:function(now,fx){
if($.isFunction(stepFunction)){
stepFunction.apply(this,arguments);
};
},complete:function(){
if($.isFunction(completeFunction)){
completeFunction.apply(this,arguments); };}});
};
}
这有效并为所需的一切设置动画。但是,我正在尝试调用 Animator 函数并使用 step 函数为属性设置动画。这是电话:
var angle=0,
stepFunction=function(now,fx,angle){
angle+=1;
$(this).css({"-ms-transform":"rotate("+angle+"deg)"});
};
Animator(obj,aniArgs,speed,easing,0,stepFunction,null);
传入的所有其他参数都很好,并且检查得很好。obj 是被动画的 obj,aniArgs 是一个对象字面量,包含所有要动画的 CSS 名称/值,speed 是速度,easing 是一个包含所有 CSS 名称/缓动值的对象字面量,stepFunction 是上面声明的函数变量,null表示没有完整的功能可以执行。
一切都很好,但是我遇到了 step 函数的可变问题。我似乎无法在实际的阶跃函数中获得角度的值。在该步骤中,我现在可以记录和 fx,并且它们运行良好,但是我无法传递具有初始 0 值的角度,以便我可以增加它。
有什么想法我哪里出错了吗?谢谢!