Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как заовнить анимацию ? (https://javascript.ru/forum/jquery/21306-kak-zaovnit-animaciyu.html)

melky 04.09.2011 21:03

как заовнить анимацию ?
 
как в этой библиотеке можно полностью контролировать ход анимации? ну, к примеру, изменить скорость анимирования, свойства, или элемент.

где это всё лежит? я узнал только, что вообще доступ ко всему этому можно получить так

Цитата:

.animate( properties, options )
options
step: A function to be called after each step of the animation.
в эту функцию как раз попадают два аргумента
Цитата:

now: the numeric value of the property being animated at each step
fx: a reference to the jQuery.fx prototype object, which contains a number of properties such as elem for the animated element, start and end for the first and last value of the animated property, respectively, and prop for the property being animated.
так вот. у этого самого прототипа анимации нет никакой документации

в общем, вопрос к вам : как можно полностью контролировать ход анимации в jquery ?

x-yuri 07.09.2011 20:29

изменять анимацию в процессе выполнения? O.o А разбить ее на части нельзя? Могу только такую документацию предложить

melky 07.09.2011 20:57

это пример использования такой :)

просто мне будет легче оперировать с анимацией на более низком уровне, чем просто $.animate

melky 07.09.2011 21:13

ура, что-то начало получаться!

ссылка на git чуточку помогла - окинул код взглядом

а так .. на jsfiddle библиотека не сжата, так что я хорошенько прошёлся по коду дебаггером. в итоге выяснилось две проблемы, которые связаны со вторым аргументом $.fx ( объект options ), который должен содержать непонятные свойства.

второе хоть и интуитивно понятно, но первое...
буду дальше лазить по коду :)

<body style="padding: 0">hello, world!</body>
<script src="http://yandex.st/jquery/1.6.3/jquery.min.js"></script>
<script>
b = new $.fx(document.body, {

animatedProperties: {
        "padding": "linear"
    },
    duration : 700

}, "padding");

b.custom(5, 150, 'px')
    
setTimeout(function(){
    b.options.duration = 3000;
    b.now = 34;
}, 500);

</script>


Часовой пояс GMT +3, время: 12:04.