Add new ol.easing.elastic and ol.easing.bounce easing functions.

This commit is contained in:
Frederic Junod
2013-01-17 17:03:53 +01:00
parent 202df34e71
commit 8825251c42
2 changed files with 41 additions and 2 deletions

View File

@@ -21,3 +21,40 @@ ol.easing.upAndDown = function(t) {
return 1 - goog.fx.easing.inAndOut(2 * (t - 0.5));
}
};
/**
* from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js
* @param {number} t Input between 0 and 1.
* @return {number} Output between 0 and 1.
*/
ol.easing.elastic = function(t) {
return Math.pow(2, -10 * t) * Math.sin((t - 0.075) * (2 * Math.PI) / 0.3) + 1;
};
/**
* from https://raw.github.com/DmitryBaranovskiy/raphael/master/raphael.js
* @param {number} t Input between 0 and 1.
* @return {number} Output between 0 and 1.
*/
ol.easing.bounce = function(t) {
var s = 7.5625, p = 2.75, l;
if (t < (1 / p)) {
l = s * t * t;
} else {
if (t < (2 / p)) {
t -= (1.5 / p);
l = s * t * t + 0.75;
} else {
if (t < (2.5 / p)) {
t -= (2.25 / p);
l = s * t * t + 0.9375;
} else {
t -= (2.625 / p);
l = s * t * t + 0.984375;
}
}
}
return l;
};