Ребят, делаю галерею. Столкнулся с проблемой.... .animate в хроме/сафари как-то странно работает. Вот код:
/**
* Анимация next
*/
function animateNext(){
if (!isAnimated){
isAnimated = true;
// добавляем фото
$tempImg = $("<img />",{id : "tempImg", alt: "temp", src: nextImg});
$tempImg.css({position: "absolute", marginLeft: "-852px"});
$("#photo-wrapper").append($tempImg);
// движение
$("#mainImg").animate({marginLeft: 852}, "normal");
$("#tempImg").animate({marginLeft: 0}, "normal",function(){
// возвращаем все, как было
$("#mainImg").attr("src",nextImg).css({marginLeft:0});
$("#tempImg").remove();
current++;
if (current==galerySize) current = 0;
preload(current);
isAnimated = false;
});
}
}
Что я здесь делаю:
1) создаю еще одно изображение (правее заданного - его не видно изначально)
2) анимирую изображение, которое сейчас видно и вновь созданное - смещение обеих вправо на ширину изображения.
3) Возвращаю старое изображение на место, меняю ему src на новый и удаляю временное изображение.
В хроме у меня начались проблемы... циклится смена изображений.. я так понимаю, что он тупо не может выйти из callback функции animate... почему - не знаю. Помогите пожалуйста. Пронаблюдать баг можно здесь:
http://gsg.banana.dn.ua/restaurants/shato/
(чтоб просмотреть галерею - нажмите на маленькое изображение внизу)
P.S. Кстати. по-другому тоже пробовал сделать - удалять mainImg и переприсваивать id... Все равно не катит.. все равно в хроме и сафари баг с выходом из .animate.
Ставил alert() на выходе - до него так и не доходит... что делать?