奇怪的IE vs Firefox Javascript动画速度

时间:2012-02-24 03:18:51

标签: javascript jquery firefox timer internet-explorer-9

我有以下功能,它与一系列不同的插件设置相关联,允许您配置旋转对象的手柄,速度和角度。在IE9中,一切都运行得非常清晰,非常好,但是firefox是生涩的。

// 1. FUNCTION ROTATE ANIMATIONS IN
function rotate_on(degree, index){
clearTimeout(rotateofftimer);   /* CLEAR ANIMATION OUT TIMER */

// A. APPLY THE CROSS-BROWSER CSS FOR ROTATIONS
if((ievers==6)||(ievers==7)||(ievers==8)){ if(ievers==8){ /* IE 8 CODE */ current_obj.css({/* IE8 */'-ms-filter':'"progid:DXImageTransform.Microsoft.BasicImage(rotation='+degree+')"',/* IE<8 */'filter':'progid:DXImageTransform.Microsoft.BasicImage(rotation='+degree+')'});} else { /* IE 6/7 CODE */ };

} else { /* NON IE */ 
current_obj.css({/* W3C CSS3 standard */'transform':'translateX(0)rotate('+degree+'deg)','transform-origin':OS.rotate_handle_on_set[index],/* Firefox */'-moz-transform':'translateX(0)rotate('+degree+'deg)','-moz-transform-origin':OS.rotate_handle_on_set[index],/* Chrome, Safari, Mobile, Etc. */'-webkit-transform':'translateX(0)rotate('+degree+'deg)','-webkit-transform-origin':OS.rotate_handle_on_set[index],/* Opera */'-o-transform':'translateX(0)rotate('+degree+'deg)','-o-transform-origin':OS.rotate_handle_on_set[index],/* IE>=9 */'-ms-transform':'rotate('+degree+'deg)','-ms-transform':'translateX(0)rotate('+degree+'deg)','-ms-transform-origin':OS.rotate_handle_on_set[index]});};

// B. TEST FOR REPEAT ROTATIONS - IF VALUES ARE THE SAME, REPEAT ROTATIONS
if(OS.rotate_on_set[index]==OS.rotate_off_set[index]){ 

// SAVE THE ENDING VALUE TO PICKUP ON NEXT PLAY (IF LOOPING)
OS.rotate_on_set[index]=degree;OS.rotate_off_set[index]=degree; degree++;
}else{ if(degree<OS.rotate_off_set[index]){ degree++ };};

// C. TRIGGER THE FUNCTION IN A TIMER, BASED ON USER SPEED
rotateontimer = setTimeout(function(){rotate_on(degree, index)},OS.rotate_speed_on_set[index]);};

奇怪的是,当我将速度降低以使动画非常慢时,它基本上在Firefox中一次抽出1帧,但IE9似乎知道如何将其转换为平滑/慢速动画。这可能与计时器有关吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是Firefox的方式。我有同样的问题,不稳定的JS动画,只有在用Firefox查看时。 Internet Explorer 9(在标准模式下兼容模式“IE7”和“IE8”)和Chrome都可以在所有情况下显示流畅的动画。

相信我,我们不是唯一有这个问题的人,并且到目前为止还没有明确的解决方案。