diff --git a/src/effects.js b/src/effects.js index d9e9a8b3..a41efc28 100644 --- a/src/effects.js +++ b/src/effects.js @@ -363,7 +363,9 @@ jQuery.fx.prototype = { t.elem = this.elem; if ( t() && jQuery.timers.push(t) && !timerId ) { - timerId = setInterval(fx.tick, fx.interval); + jQuery.support.requestAnimationFrame ? + window[jQuery.support.requestAnimationFrame](fx.tick): + timerId = setInterval(fx.tick, fx.interval); } }, @@ -468,6 +470,8 @@ jQuery.extend( jQuery.fx, { if ( !timers.length ) { jQuery.fx.stop(); + } else if ( jQuery.support.requestAnimationFrame ) { + window[jQuery.support.requestAnimationFrame](this); } }, diff --git a/src/support.js b/src/support.js index 4c309562..6d331868 100644 --- a/src/support.js +++ b/src/support.js @@ -58,6 +58,14 @@ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) optSelected: opt.selected, + // Verify requestAnimationFrame mechanism existence + // use the prefixed name as the value + requestAnimationFrame: mozRequestAnimationFrame ? + 'mozRequestAnimationFrame' : + webkitRequestAnimationFrame ? + 'webkitRequestAnimationFrame' : + false, + // Will be defined later deleteExpando: true, optDisabled: false,