Не совсем коректная работа .animate
Всем здравствуйте.
Собственно вопрос в следующем - есть слайдер с простой сменой картинок, но с анимацией - движение картинки + увеличение - как бы эффект плавучести. Проблема в том что не корректно работает .animate - картинки движутся рывками - не могу понять в чем проблема. Вот основной кусок кода который двигает картинки(показываю только пару эфектов для наглядности): var cur_img = 0;//индекс текущего изображения var hor_distance = 100;//горизонтальное расстояние, на которое перемещается картинка var vert_distance = 100;//вертикальное расстояние, на которое перемещается картинка var hor_zoom = 100;//горизонтальный зум, количество пикселей, на которые увеличивается картинка по горизонтали var vert_zoom = 100;//вертикальный зум, количество пикселей, на которые увеличивается картинка по вертикали switch(rand) { case 0: $("#slider img:eq("+cur_img+")").animate({left:"-="+hor_distance+"px",width:"+="+hor_zoom+"px"},zoom_delay); break; case 1: $("#slider img:eq("+cur_img+")").animate({right:"-="+hor_distance+"px",width:"+="+hor_zoom+"px"},zoom_delay); break; case 2: $("#slider img:eq("+cur_img+")").animate({top:"-="+vert_distance+"px",height:"+="+vert_zoom+"px"},zoom_delay); break; case 3: $("#slider img:eq("+cur_img+")").animate({bottom:"-="+vert_distance+"px",height:"+="+vert_zoom+"px"},zoom_delay); break; default: $("#slider img:eq("+cur_img+")").animate({left:"-="+hor_distance+"px",width:"+="+hor_zoom+"px"},zoom_delay); break; } Полный код и как работает слайдер можно посмотреть здесь - http://1top-start.ru/slider/ Вопрос состоит в том - можно ли сделать что бы движение картинки было плавным и как это сделать. Буду признателен за ответ. |
Bond,
вот эта строка лишняя в вашем коде setInterval("show_img();",slider_interval); поставьте вызов show_img во все animate -- так на всякий случай var slider_interval = 4000;//интервал между сменой слайдов, милисекунд var zoom_delay = 4000;//время, в течение которого происходит увеличение и перемещение картинки, милисекунд данные секунды никогда несовпадут -- и интервал запустит лишние анимации отсюда и рывки -- можно конечно ничего не менять добавив stop(true,true) перед animate -- но лучше в таких анимациях отказ от использования setInterval |
Извините Рони, а как тогда запускать анимацию что бы она циклически сменялась без setInterval ?
|
Цитата:
Цитата:
|
Bond,
zoom_delayСЮДА); break; |
Сделал правки http://1top-start.ru/slider/ но ситуация не изменилась.
|
Bond,
в каком браузере у вас рывки? |
|
Здесь тоже есть рывки http://learn.javascript.ru/play/p8Jonb в Лисе больше в хроме меньше кроме того изображение не двигается а растягивается, на самом деле они слабо заметны (видно только если на границе блока назначить точку и наблюдать за ней) но все же есть.
|
Bond,
невижу рывков |
Часовой пояс GMT +3, время: 03:59. |