44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
// Add CustomEvent to IE9 and IE10
|
|
if (typeof window.CustomEvent !== 'function') {
|
|
// Code from: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent
|
|
var CustomEventPoly = function(event, options) {
|
|
options = options || { bubbles: false, cancelable: false, detail: undefined }
|
|
var e = document.createEvent('CustomEvent')
|
|
e.initCustomEvent(event, options.bubbles, options.cancelable, options.detail)
|
|
return e
|
|
}
|
|
|
|
CustomEventPoly.prototype = window.Event.prototype
|
|
|
|
SVG.CustomEvent = CustomEventPoly
|
|
} else {
|
|
SVG.CustomEvent = window.CustomEvent
|
|
}
|
|
|
|
// requestAnimationFrame / cancelAnimationFrame Polyfill with fallback based on Paul Irish
|
|
(function(w) {
|
|
var lastTime = 0
|
|
var vendors = ['moz', 'webkit']
|
|
|
|
for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
|
|
w.requestAnimationFrame = w[vendors[x] + 'RequestAnimationFrame']
|
|
w.cancelAnimationFrame = w[vendors[x] + 'CancelAnimationFrame'] ||
|
|
w[vendors[x] + 'CancelRequestAnimationFrame']
|
|
}
|
|
|
|
w.requestAnimationFrame = w.requestAnimationFrame ||
|
|
function(callback) {
|
|
var currTime = new Date().getTime()
|
|
var timeToCall = Math.max(0, 16 - (currTime - lastTime))
|
|
|
|
var id = w.setTimeout(function() {
|
|
callback(currTime + timeToCall)
|
|
}, timeToCall)
|
|
|
|
lastTime = currTime + timeToCall
|
|
return id
|
|
}
|
|
|
|
w.cancelAnimationFrame = w.cancelAnimationFrame || w.clearTimeout;
|
|
|
|
}(window)) |