2013-06-13 4 views
0

Это живой пример проблемы: http://www.igabiba.si Если вы изменили изображение, нажав кнопку> (далее), анимация запускается правильно в первый раз, но не на более поздние попытки. Позже он просто пропускает анимацию и позиции в конечной позиции после установленного количества времени.Jquery animate работает в первый раз, но не после этого

Как ни странно, анимация предыдущей кнопки работает безупречно.

Это часть кода, которая оживляет фоновое изображение (весь код виден в источнике):

if (mode == 'prev') { 

        $('#take_div').animate({ 
        left: '-2000px', 
        }, 500, function() { 
        if (takeFields[2] != '') { 
         $('#take_link').attr('href',takeFields[2]); 
        } 
        $('#take_div').css('background',takeFields[1]+' url(/media/uploads/gTakeover/'+takeFields[0]+') no-repeat center top'); 
        $('#take_div').css('left',''); 
        $('#take_div').css('right','-2000px'); 
        $('#take_div').animate({ 
         right: '0px', 
        }, 500); 
        }); 

       } else { 

       $('#take_div').animate({ 
        right: '-=2000', 
        }, 500, function() { 
        if (takeFields[2] != '') { 
         $('#take_link').attr('href',takeFields[2]); 
        } 
        $('#take_div').css('background',takeFields[1]+' url(/media/uploads/gTakeover/'+takeFields[0]+') no-repeat center top'); 
        $('#take_div').css('right',''); 
        $('#take_div').css('left','-2000px'); 
        $('#take_div').animate({ 
         left: '0px', 
        }, 500); 
        }); 

       } 

Я был бы признателен за помощь в этом.

+0

Какую версию jquery вы используете? –

+0

https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js - это версия, которую я связываю – Bostjan

+0

Я спрашивал, какая версия из-за ошибки, но не доведена до версии you используют: http://stackoverflow.com/a/16849097/1414562 –

ответ

0

Мне удалось найти проблему. Это была проблема, когда свойство «left» было установлено на 0px после первой анимации. Во второй раз он побежал он имел изменяющееся свойство «правильную», но левый остался в 0px, поэтому вместо того, чтобы:

$('#take_div').animate({ 
       right: '-=2000', 
       }, 500, function() { 
       if (takeFields[2] != '') { 
        $('#take_link').attr('href',takeFields[2]); 
       } 
       $('#take_div').css('background',takeFields[1]+' url(/media/uploads/gTakeover/'+takeFields[0]+') no-repeat center top'); 
       $('#take_div').css('right',''); 
       $('#take_div').css('left','-2000px'); 
       $('#take_div').animate({ 
        left: '0px', 
       }, 500); 
       }); 

Я сделал это:

$('#take_div').stop().animate({ 
        right: '-2000px', 
        }, 500, function() { 
        if (takeFields[2] != '') { 
         $('#take_link').attr('href',takeFields[2]); 
        } 
        $('#take_div').css('background',takeFields[1]+' url(/media/uploads/gTakeover/'+takeFields[0]+') no-repeat center top'); 
        $('#take_div').css('right',''); 
        $('#take_div').css('left','-2000px'); 
        $('#take_div').stop().animate({ 
         left: '0px', 
        }, 500, function() { 
         $('#take_div').css('left','auto'); 
        }); 
        }); 

Сейчас он работает гладко. Спасибо за помощь, хотя ребята.

1

добавить в .stop() перед всеми функциями .animate() и посмотреть.

$('#take_div').stop().animate({ 
    right: '0px', 
}, 500); 
+0

, похоже, не помогают. Спасибо за попытку помочь хотя – Bostjan

+0

проверить вашу консольную ошибку также, ... Uncaught TypeError: Не удается прочитать свойство «cmd» undefined www.igabiba.si/:383 ... carouFredSel: Элемент не найден для «# foo2». ... «fb-root» div не был создан, авто-создание all.js: 55 – yeyene

+0

, но это не так, но спасибо, что указали его. Ниже мой ответ. – Bostjan

Смежные вопросы