diff --git a/src/effects.js b/src/effects.js index 12b87bd4..e5a10295 100644 --- a/src/effects.js +++ b/src/effects.js @@ -363,17 +363,16 @@ jQuery.fx.prototype = { t.elem = this.elem; if ( t() && jQuery.timers.push(t) && !timerId ) { - if ( jQuery.support.requestAnimationFrame ) { - timerId = true; - (function raf() { + // Use requestAnimationFrame instead of setInterval if available + ( timerId = jQuery.support.requestAnimationFrame ) ? + window[timerId](function raf() { + // timerId will be true as long as the animation hasn't been stopped if (timerId) { - window[jQuery.support.requestAnimationFrame](raf); + window[timerId](raf); + fx.tick(); } - fx.tick(); - })(); - } else { + }): timerId = setInterval(fx.tick, fx.interval); - } } },