Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вопрос про Animate() (https://javascript.ru/forum/jquery/21645-vopros-pro-animate.html)

Роман Валерьевич 19.09.2011 10:51

Вопрос про Animate()
 
Есть конструкция:

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. Т.е. это был просто глюк прежней версии.
Убил на эту ерунду пол дня(


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