Some adjustments and style edits on lrbabe's pull for requestAnimationFrame
- Moved support.js check to effects.js. This is just an assignment to the function if it exists. Removed string concatenations. + Still need to do the checks on window, but after that, window is no longer needed. - Switched ternary to an if statmenet - assigned timerId to a number rather than the function. I did perf tests to check which is faster.
This commit is contained in:
parent
5b0369366a
commit
fe3203bb5b
20
src/effects.js
vendored
20
src/effects.js
vendored
|
@ -11,7 +11,8 @@ var elemdisplay = {},
|
||||||
[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
|
[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
|
||||||
// opacity animations
|
// opacity animations
|
||||||
[ "opacity" ]
|
[ "opacity" ]
|
||||||
];
|
],
|
||||||
|
requestAnimationFrame = window.webkitRequestAnimationFrame || window.mozRequestionAnimationFrame;
|
||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
show: function( speed, easing, callback ) {
|
show: function( speed, easing, callback ) {
|
||||||
|
@ -364,15 +365,18 @@ jQuery.fx.prototype = {
|
||||||
|
|
||||||
if ( t() && jQuery.timers.push(t) && !timerId ) {
|
if ( t() && jQuery.timers.push(t) && !timerId ) {
|
||||||
// Use requestAnimationFrame instead of setInterval if available
|
// Use requestAnimationFrame instead of setInterval if available
|
||||||
( timerId = jQuery.support.requestAnimationFrame ) ?
|
if ( requestAnimationFrame ) {
|
||||||
window[timerId](function raf() {
|
timerId = 1;
|
||||||
// timerId will be true as long as the animation hasn't been stopped
|
requestAnimationFrame(function raf() {
|
||||||
if (timerId) {
|
// When timerId gets set to null at any point, this stops
|
||||||
window[timerId](raf);
|
if ( timerId ) {
|
||||||
|
requestAnimationFrame( raf );
|
||||||
fx.tick();
|
fx.tick();
|
||||||
}
|
}
|
||||||
}):
|
});
|
||||||
timerId = setInterval(fx.tick, fx.interval);
|
} else {
|
||||||
|
timerId = setInterval( fx.tick, fx.interval );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,7 @@
|
||||||
a = div.getElementsByTagName("a")[0],
|
a = div.getElementsByTagName("a")[0],
|
||||||
select = document.createElement("select"),
|
select = document.createElement("select"),
|
||||||
opt = select.appendChild( document.createElement("option") ),
|
opt = select.appendChild( document.createElement("option") ),
|
||||||
input = div.getElementsByTagName("input")[0],
|
input = div.getElementsByTagName("input")[0];
|
||||||
raf = "RequestAnimationFrame";
|
|
||||||
|
|
||||||
// Can't get basic test support
|
// Can't get basic test support
|
||||||
if ( !all || !all.length || !a ) {
|
if ( !all || !all.length || !a ) {
|
||||||
|
@ -59,13 +58,6 @@
|
||||||
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
|
// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
|
||||||
optSelected: opt.selected,
|
optSelected: opt.selected,
|
||||||
|
|
||||||
// Verify requestAnimationFrame mechanism existence
|
|
||||||
// use the prefixed name as the value
|
|
||||||
requestAnimationFrame:
|
|
||||||
window['moz' + raf] ? 'moz' + raf :
|
|
||||||
window['webkit' + raf] ? 'webkit' + raf :
|
|
||||||
false,
|
|
||||||
|
|
||||||
// Will be defined later
|
// Will be defined later
|
||||||
deleteExpando: true,
|
deleteExpando: true,
|
||||||
optDisabled: false,
|
optDisabled: false,
|
||||||
|
|
Loading…
Reference in a new issue