easing.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.linear = linear;
  4. exports.quadraticIn = quadraticIn;
  5. exports.quadraticOut = quadraticOut;
  6. exports.quadraticInOut = quadraticInOut;
  7. exports.cubicIn = cubicIn;
  8. exports.cubicOut = cubicOut;
  9. exports.cubicInOut = cubicInOut;
  10. exports.elasticIn = elasticIn;
  11. exports.elasticOut = elasticOut;
  12. exports.elasticInOut = elasticInOut;
  13. exports.backIn = backIn;
  14. exports.backOut = backOut;
  15. exports.backInOut = backInOut;
  16. exports.bounceIn = bounceIn;
  17. exports.bounceOut = bounceOut;
  18. exports.bounceInOut = bounceInOut;
  19. function linear(k) {
  20. return k;
  21. }
  22. function quadraticIn(k) {
  23. return k * k;
  24. }
  25. function quadraticOut(k) {
  26. return k * (2 - k);
  27. }
  28. function quadraticInOut(k) {
  29. if ((k *= 2) < 1) {
  30. return 0.5 * k * k;
  31. }
  32. return -0.5 * (--k * (k - 2) - 1);
  33. }
  34. function cubicIn(k) {
  35. return k * k * k;
  36. }
  37. function cubicOut(k) {
  38. return --k * k * k + 1;
  39. }
  40. function cubicInOut(k) {
  41. if ((k *= 2) < 1) {
  42. return 0.5 * k * k * k;
  43. }
  44. return 0.5 * ((k -= 2) * k * k + 2);
  45. }
  46. function elasticIn(k) {
  47. var s;
  48. var a = 0.1;
  49. var p = 0.4;
  50. if (k === 0) return 0;
  51. if (k === 1) return 1;
  52. if (!p) {
  53. p = 0.3;
  54. }
  55. if (!a || a < 1) {
  56. a = 1;
  57. s = p / 4;
  58. } else {
  59. s = p / (2 * Math.PI) * Math.asin(1 / a);
  60. }
  61. return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
  62. }
  63. function elasticOut(k) {
  64. var s;
  65. var a = 0.1;
  66. var p = 0.4;
  67. if (k === 0) return 0;
  68. if (k === 1) return 1;
  69. if (!p) {
  70. p = 0.3;
  71. }
  72. if (!a || a < 1) {
  73. a = 1;
  74. s = p / 4;
  75. } else {
  76. s = p / (2 * Math.PI) * Math.asin(1 / a);
  77. }
  78. return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1;
  79. }
  80. function elasticInOut(k) {
  81. var s;
  82. var a = 0.1;
  83. var p = 0.4;
  84. if (k === 0) return 0;
  85. if (k === 1) return 1;
  86. if (!p) {
  87. p = 0.3;
  88. }
  89. if (!a || a < 1) {
  90. a = 1;
  91. s = p / 4;
  92. } else {
  93. s = p / (2 * Math.PI) * Math.asin(1 / a);
  94. }
  95. if ((k *= 2) < 1) {
  96. return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
  97. }
  98. return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
  99. }
  100. function backIn(k) {
  101. var s = 1.70158;
  102. return k * k * ((s + 1) * k - s);
  103. }
  104. function backOut(k) {
  105. var s = 1.70158;
  106. return (k = k - 1) * k * ((s + 1) * k + s) + 1;
  107. }
  108. function backInOut(k) {
  109. var s = 1.70158 * 1.525;
  110. if ((k *= 2) < 1) {
  111. return 0.5 * (k * k * ((s + 1) * k - s));
  112. }
  113. return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
  114. }
  115. function bounceIn(k) {
  116. return 1 - bounceOut(1 - k);
  117. }
  118. function bounceOut(k) {
  119. if ((k /= 1) < 1 / 2.75) {
  120. return 7.5625 * k * k;
  121. } else if (k < 2 / 2.75) {
  122. return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75;
  123. } else if (k < 2.5 / 2.75) {
  124. return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375;
  125. }
  126. return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375;
  127. }
  128. function bounceInOut(k) {
  129. if (k < 0.5) {
  130. return bounceIn(k * 2) * 0.5;
  131. }
  132. return bounceOut(k * 2 - 1) * 0.5 + 0.5;
  133. }