Показать сообщение отдельно
  #1 (permalink)  
Старый 19.09.2011, 10:51
Интересующийся
Отправить личное сообщение для Роман Валерьевич Посмотреть профиль Найти все сообщения от Роман Валерьевич
 
Регистрация: 19.09.2011
Сообщений: 23

Вопрос про 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 в 10:53.
Ответить с цитированием