v 1.4.9.
Еще немного оптимизирован механизм анимаций и добавлена наиболее полная коллекция easing методов для рендеринга CSS анимаций.
Вот полный список способов(их 31!):
switch(r) {
case 'easeIn': f = Math.pow( f, 5 );
break;
case 'easeOut': f = 1 - Math.pow( 1 - f, 5 );
break;
case 'easeOutQuad': f = f < 0.5 ? 2 * f * f : -1 + (4 - 2 * f) * f;
break;
case 'easeOutCubic': f = f * f * f;
break;
case 'easeInOutCubic': f = f < 0.5 ? 4 * f * f * f : (f - 1) * (2 * f - 2) * (2 * f - 2) + 1;
break;
case 'easeInQuart': f = f * f * f * f;
break;
case 'easeOutQuart': f = 1 - (--f) * f * f * f;
break;
case 'easeInOutQuart': f = f < 0.5 ? 8 * f * f * f * f : 1 - 8 * (--f) * f * f * f;
break;
case 'easeInQuint': f = f * f * f * f * f;
break;
case 'easeOutQuint': f = 1 + (--f) * f * f * f * f;
break;
case 'easeInOutQuint': f = f < 0.5 ? 16 * f * f * f * f * f : 1 + 16 * (--f) * f * f * f * f;
break;
case 'elastic': f = Math.pow(2, 10 * (f - 1)) * Math.cos(20 * Math.PI * 1.5 / 3 * f);
break;
case 'easeInElastic': f = (.04 - .04 / f) * Math.sin(25 * f) + 1;
break;
case 'easeOutElastic': f = .04 * f / (--f) * Math.sin(25 * f);
break;
case 'easeInOutElastic': f = (f -= 0.5) < 0 ? (0.01 + 0.01 / f) * Math.sin(50 * f) : (0.02 - 0.01 / f) * Math.sin(50 * f) + 1;
break;
case 'easeInSin': f = 1 + Math.sin(Math.PI / 2 * f - Math.PI / 2);
break;
case 'easeOutSin': f = Math.sin(Math.PI / 2 * f);
break;
case 'easeInOutSin': f = (1 + Math.sin(Math.PI * f - Math.PI / 2)) / 2;
break;
case 'easeInCirc': f = -(Math.sqrt(1 - (f * f)) - 1);
break;
case 'easeOutCirc': f = Math.sqrt(1 - Math.pow((f-1), 2));
break;
case 'easeInOutCirc': f = ((f /= 0.5) < 1) ? -0.5 * (Math.sqrt(1 - f * f) - 1) : 0.5 * (Math.sqrt(1 - (f-=2) * f) + 1);
break;
case 'easeInQuad': f = f * f;
break;
case 'radical': f = Math.sqrt(f);
break;
case 'harmony': f = (1 + Math.sin((f - 0.5) * Math.PI)) / 2;
break;
case 'back': f = Math.pow(f, 2) * ((1.5 + 1) * f - 1.5);
break;
case 'easeInExpo': f = (f === 0) ? 0 : Math.pow(2, 10 * (f - 1));
break;
case 'easeOutExpo': f = (f === 1) ? 1 : -Math.pow(2, -10 * f) + 1;
break;
case 'easeInOutExpo': f = ((f /= 0.5) < 1) ? 0.5 * Math.pow(2,10 * (f-1)) : 0.5 * (-Math.pow(2, -10 * --f) + 2);
break;
case 'easeOutBounce':
if ((f) < (1/2.75)) {
f = (7.5625 * f * f);
} else if (f < (2/2.75)) {
f = (7.5625 * (f -= (1.5 / 2.75)) * f + 0.75);
} else if (f < (2.5/2.75)) {
f = (7.5625 * (f -= (2.25 / 2.75)) * f + 0.9375);
} else {
f (7.5625 * (f -= (2.625 / 2.75)) * f + 0.984375);
}
break;
case 'bounce':
if (f < (1/2.75)) {
f = (7.5625 * f * f);
} else if (f < (2 / 2.75)) {
f = (7.5625 * ( f -= (1.5 / 2.75)) * f + 0.75);
} else if (f < (2.5 / 2.75)) {
f = (7.5625 * (f -= (2.25 / 2.75)) * f + 0.9375);
} else {
f = (7.5625 * (f -= (2.625 / 2.75)) * f + 0.984375);
}
break;
case 'bouncePast':
if (f < (1/2.75)) {
f = (7.5625 * f * f);
} else if (f < (2 / 2.75)) {
f = 2 - (7.5625 * ( f -= (1.5 / 2.75)) * f + 0.75);
} else if (pos < (2.5 / 2.75)) {
f = 2 - (7.5625 * ( f -=(2.25 / 2.75)) * f + 0.9375);
} else {
f = 2 - (7.5625 * ( f -=(2.625 / 2.75)) * f + 0.984375);
}
break;
default: f = 1;
break;
}
Весь фреймворк на данный момент весит около 40кб чистого несжатого кода, что выигрывает у jQuery в 6 раз примерно. Минифицированная версия будет немного позже.