Page 96 - jQuery для начинающих
P. 96

Animate


                    Информация в данном разделе актуальна для  jQuery версии 1.8 и выше, если вас
                    заинтересуют возможности расширения для более старых версий, то читайте

                    мою статью «Пишем плагины анимации»


             Для  начала  затравка  –  метод  animate()  манипулирует  объектом  jQuery.Animation,
             который предусматривает следующие точки для расширения:

                —  jQuery.Tween.propHooks
                —  jQuery.Animation.preFilter
                —  jQuery.Animation.tweener



             Начну  рассказ  с  jQuery.Tween.propHooks,  т.к.  уже  есть  плагины,  в  код  которых  можно
             заглянуть  :)  Для  пущей  наглядности  я  возьму  достаточно  тривиальную  задачу  –  заставим
             плавно изменить цвет шрифта для заданного набора элементов:


                    $('p').animate({color:'#ff0000'});


             Приведенный  выше  код  не  даст  никакого  эффекта,  т.к.  свойство  «color»  фреймворк  не
             анимирует, но это можно исправить – надо лишь прокачать jQuery.Tween.propHooks:



                    $.Tween.propHooks.color = {
                           get: function(tween) {
                                  return tween.elem.style.color;

                           }
                           set: function(tween) {

                                  tween.easing;  // текущий easing
                                  tween.elem;    // испытуемый элемент
                                  tween.options; // настройки анимация

                                  tween.pos;     // текущий прогресс
                                  tween.prop;    // свойство которое изменяем
                                  tween.start;   // начальные значения

                                  tween.now;     // текущее значение
                                  tween.end;     // желаемое результирующие значения
                                  tween.unit;    // еденицы измерения

                           }
                    }




                                                                                                         96


                                                                                        www.trk.kg
   91   92   93   94   95   96   97   98   99   100   101