Вход

Просмотр полной версии : Вопрос про Animate()


Роман Валерьевич
19.09.2011, 10:51
Есть конструкция:

newMargin = parseInt($("#win").css("marginLeft"));
newMargin = Math.floor(newMargin - screen_x);

newMargins = newMargin.toString() + "px";
$("#win").animate({"marginLeft": newMargins},{duration:600, easing: 'easeInOutQuint'});

screen_x содержит текущую ширину клиентской области браузера (число).
Смысл конструкции: контейнер win сдвигается влево относительно своей текущей позиции на величину screen_x. Конструкция повешена на клик кнопки и по задумке выполняется пошагово.

Столкнулся с тем что при последовательном вызове (щелкая по кнопке) этой консутркции, когда величина newMargin доходит до -11000px (т.е. примерно 7-8 щелчок по кнопке) происходит, походу, обнуление текущего значения marginLeft контейнера win. Таким образом анимация идет не от предыдущего marginLeft а от нуля и до нового значения marginLeft. Первые 7-8 шагов выполняются нормально, а потом начинается веселая карусель)

Не могу понять в чем дело. Есть ли какие-либо ограничения на величину marginLeft в CSS, JS или у функции animate() JQuery?

Роман Валерьевич
19.09.2011, 16:35
Проблема решилась загрузкой последнего JQuery v1.6.4. Работал до этого с v1.4.3. Т.е. это был просто глюк прежней версии.
Убил на эту ерунду пол дня(