Ответ 1
Проверьте модуль перехода YUI 3, он делает именно это.
Есть ли там инфраструктура javascript, которая будет использовать переходы CSS3 для эффектов, таких как изменение непрозрачности или движущихся элементов, но вернется к использованию javascript setInterval/setTimeout, если он не поддерживается?
Проверьте модуль перехода YUI 3, он делает именно это.
Ознакомьтесь с статьей Addy Osmani. Это хорошее резюме текущих решений с jQuery, в частности:
Вы можете посмотреть http://www.modernizr.com/
Один из моих коллег написал микробиблиотеку, предлагающую ограниченный резерв JS для Transitions: http://blogs.msdn.com/b/eternalcoding/archive/2011/12/06/css3-transitions.aspx
TRANSITIONSHELPER.computeCubicBezierCurveInterpolation = function (t, x1, y1, x2, y2) {
// Extract X (which is equal to time here)
var f0 = 1 - 3 * x2 + 3 * x1;
var f1 = 3 * x2 - 6 * x1;
var f2 = 3 * x1;
var refinedT = t;
for (var i = 0; i < 5; i++) {
var refinedT2 = refinedT * refinedT;
var refinedT3 = refinedT2 * refinedT;
var x = f0 * refinedT3 + f1 * refinedT2 + f2 * refinedT;
var slope = 1.0 / (3.0 * f0 * refinedT2 + 2.0 * f1 * refinedT + f2);
refinedT -= (x - t) * slope;
refinedT = Math.min(1, Math.max(0, refinedT));
}
// Resolve cubic bezier for the given x
return 3 * Math.pow(1 - refinedT, 2) * refinedT * y1 +
3 * (1 - refinedT) * Math.pow(refinedT, 2) * y2 +
Math.pow(refinedT, 3);
};
Возможно, этого может быть достаточно или хорошей базы для достижения того, что вы ищете?
Пока,
Дэвид
Подводя итог, есть несколько плагинов для больших фреймворков (см. другие ответы):
Другие фреймворки уже используют CSS-переходы, где это возможно:
Существуют ли какие-либо микробиблиотеки?
К сожалению, ни одна из этих альтернатив, по-видимому, не позволяет вам использовать ослабления, например, отскок.
Моя попытка использовать улучшенную анимацию переместила элемент на дюйм, а затем просто удалила его. Я действительно хотел бы сохранить отскок вместо кубического или линейного ослабления.