code: function easeIn(type, t, s) {
    switch (type) {
  
      case 'quad':   return t * t;
      case 'cubic':  return t * t * t;
      case 'quart':  return t * t * t * t;
      case 'quint':  return t * t * t * t * t;
      case 'circ':   return 1 - Math.sqrt(1 - t * t);
      case 'sine':   return 1 - Math.cos(t * Math.PI / 2);
      case 'exp':    return (t <= 0) ? 0 : Math.pow(2, 10 * (t - 1));
  
      case 'back':
        if (!s) s = 1.70158;
        return t * t * ((s + 1) * t - s);
  
      case 'elastic':
        if (!s) s = 0.3;
        return - Math.pow(2, 10 * (t - 1)) * Math.sin(((t - 1) * 2 / s - 0.5) * Math.PI );
  
      case 'swing':
        return 0.5 - Math.cos(t * Math.PI) / 2;
  
      case 'spring':
        return 1 - (Math.cos(t * 4.5 * Math.PI) * Math.exp(-t * 6));
  
      case 'bounce':
        if (t < 1/11) return 1/64 - 7.5625 * (0.5/11 - t) * (0.5/11 - t);  // 121/16 = 7.5625
        if (t < 3/11) return 1/16 - 7.5625 * (  2/11 - t) * (  2/11 - t);
        if (t < 7/11) return 1/4  - 7.5625 * (  5/11 - t) * (  5/11 - t);
        return 1    - 7.5625 * (     1 - t) * (     1 - t);
  
      default:
        return t;
    }
  }
docs: ----------------------------------------------------------------------------- Easing