Our requestAnimationFrame no longer changes the global window object

This commit is contained in:
Ian Gilman 2013-05-23 09:48:38 -07:00
parent 86a908a4de
commit 8f53c564da

View File

@ -1644,33 +1644,31 @@ window.OpenSeadragon = window.OpenSeadragon || function( options ){
};
// Adding support for HTML5's requestAnimationFrame as suggested by acdha
// implementation taken from matt synders post here:s
// Adding support for HTML5's requestAnimationFrame as suggested by acdha.
// Implementation taken from matt synder's post here:
// http://mattsnider.com/cross-browser-and-legacy-supported-requestframeanimation/
(function( w ) {
// most browsers have an implementation
w.requestAnimationFrame = w.requestAnimationFrame ||
var requestAnimationFrame = w.requestAnimationFrame ||
w.mozRequestAnimationFrame ||
w.webkitRequestAnimationFrame ||
w.msRequestAnimationFrame;
w.cancelAnimationFrame = w.cancelAnimationFrame ||
var cancelAnimationFrame = w.cancelAnimationFrame ||
w.mozCancelAnimationFrame ||
w.webkitCancelAnimationFrame ||
w.msCancelAnimationFrame;
// polyfill, when necessary
if ( w.requestAnimationFrame && w.cancelAnimationFrame ) {
//we cant assign window.requestAnimationFrame directly to $.requestAnimationFrame
//without getting Illegal Invocation errors in webkit so call in a
//wrapper
$.requestAnimationFrame = function( callback ){
return w.requestAnimationFrame( callback );
if ( requestAnimationFrame && cancelAnimationFrame ) {
// We can't assign these window methods directly to $ because they
// expect their "this" to be "window", so we call them in wrappers.
$.requestAnimationFrame = function(){
return requestAnimationFrame.apply( w, arguments );
};
$.cancelAnimationFrame = function( requestId ){
return w.cancelAnimationFrame( requestId );
$.cancelAnimationFrame = function(){
return cancelAnimationFrame.apply( w, arguments );
};
} else {
var aAnimQueue = [],