diff options
author | louisremi <louisremi@louisremi-laptop.(none)> | 2011-01-31 18:57:23 +0100 |
---|---|---|
committer | timmywil <tim.willison@thisismedium.com> | 2011-04-04 15:46:37 -0400 |
commit | f7ccec1b70a42de21b55dbb7b3d65da5628ade9e (patch) | |
tree | e1a02fd41d41eab3bf517c2eb3e2e44d6e8bc6f2 | |
parent | 2ed81b44be958b5f2b5569ab15f22bde262b4eb6 (diff) | |
download | jquery-f7ccec1b70a42de21b55dbb7b3d65da5628ade9e.tar.gz jquery-f7ccec1b70a42de21b55dbb7b3d65da5628ade9e.zip |
use requestAnimationFrame instead of setInterval for animations, when available.
-rw-r--r-- | src/effects.js | 6 | ||||
-rw-r--r-- | src/support.js | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/effects.js b/src/effects.js index d9e9a8b31..a41efc282 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 4c309562f..6d3318682 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, |