Page 99 - jQuery для начинающих
P. 99
opts; // опции анимации
// отключаем анимацию при попытке анимировать высоту элемента
if (props['height'] != undefined) {
return this;
}
});
Пример можно пощупать animate.prefilter.html
Про jQuery.Animation.tweener так же много не расскажешь, но пример получилось
сделать чуток интересней – приведённый код позволяет анимировать ширину и высоту
объекта по заданной диагонали:
Осторожно, для понимания происходящего потребуются знания геометрии за 8-
ой класс
// создаём поддержку нового свойства для анимации – diagonal
jQuery.Animation.tweener( "diagonal", function( property, value ) {
// создаём tween объект
var tween = this.createTween( property, value );
// промежуточные вычисления и данные
var a = jQuery.css(tween.elem, 'width', true );
var b = jQuery.css(tween.elem, 'height', true );
var c = Math.sqrt(a*a + b*b), sinA = a/c, sinB = b/c;
tween.start = c;
tween.end = value;
tween.run = function(progress) {
// вычисление искомого значения – новое значение гипотенузы
var hyp = this.start + ((this.end - this.start) * progress);
// непосредственно измение свойств элемента
tween.elem.style.width = sinA*hyp + tween.unit;
tween.elem.style.height = sinB*hyp + tween.unit;
};
return tween;
});
Пример работы animate.tweener.html
99
www.trk.kg