Page 98 - jQuery для начинающих
P. 98
Получившийся код будет работать следующим образом:
1. единожды будет вызвана функция set
2. функция run будет вызвана N-раз, при этом progress будет себя вести аналогично
tween.pos
Теперь, возвращаясь к изначальной задачи по изменению цвета можно наворотить
следующий код:
$.Tween.propHooks.color = {
set: function(tween) {
// приводим начальное и конечное значения к единому формату
// #FF0000 == [255,0,0]
tween.start = parseColor(tween.start);
tween.end = parseColor(tween.end);
tween.run = function(progress) {
tween.elem.style['color'] =
// вычисляем промежуточное значение
buildColor(tween.start, tween.end, progress);
}
}
}
Код функций parseColor() и buildColor() вы найдёте в листинге color.html
Результатом станет плавное перетекание исходного цвета к красному (#F00 == #FF0000 ==
255,0,0), вживую можно посмотреть на странице color.html
В плагине jQuery Color для решения поставленной задачи использовали
jQuery.cssHooks, но мы же не ищем лёгких путей.
Ещё хотел было рассказать про префильтры анимации, но – документации нет, а как
использовать «в жизни» – я не догадался, но чуть-чуть информации таки накопал:
jQuery.Animation.prefilter(function(element, props, opts) {
// deffered объект animate
// код можете найти в функции «Animation»
this;
element; // искомый элемент
props; // настройки анимации из animate()
98
www.trk.kg