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

Подключайте и используйте одну из трёх десятков функций easing (наглядно, с
                    иллюстрациями – animate.easing.html, а так же http://easings.net/)


             Но давайте вернёмся к функции animate, которая в качестве параметров может принимать
             ещё один набор параметров, который уже не будет казаться таким простым:



                    params – CSS свойства (уже было)
                    options – тут целый набор возможностей, часть уже описывалась ранее:

                           duration – скорость анимации

                           easing – функция («linear» или «swing»)
                           complete – функция, которая будет вызвана после окончания анимации

                           step  –  функция,  которая  будет  вызвана  на  каждом  шаге  анимации,  о  ней
                           расскажу чуть ниже

                           queue – флаг/параметр очереди, чуть позже опишу подробнее
                           specialEasing  –  хэш  в  котором  можно  описать  какую  easing  функцию
                           следует использовать для изменения определённых параметров




             Step-by-step


             Хотелось бы отдельно остановиться на функции step, и для наглядности приведу пример
             step-функции которая отображает текущее значение анимированного параметра:



                    var customStep = function(now, obj) {
                           obj.elem;    // объект анимации
                           obj.prop;    // параметр, который анимируется
                           obj.start;   // начальное значение
                           obj.end;     // конечное значение

                           obj.pos;     // коэффициент, изменяется от 0 до 1
                           obj.options; // опции настроек анимации
                           now; // текущее значение анимированного параметра, вычисляется как
                                // now = (obj.end - obj.start) * obj.pos
                           $(this).html(obj.prop +': '+now+obj.unit);  // вывод текста
                    }
                    $("#box").animate({height: "+=10px"}, {step:customStep});


                   Мне ни разу не приходилось использовать step-функции, лишь только для примера





                                                                                                         56


                                                                                        www.trk.kg
   51   52   53   54   55   56   57   58   59   60   61