Ускоряющийся timeout/interval
В начале покажу код.
current = 0; // Блок который сейчас виден total_boxes = 2; // Всего блоков (для примера 2) function changeBoxes() { var next = current+1 == total_boxes ? 0 : current+1; $('.bbox'+current).fadeOut(500, function() { $('.bbox'+next).fadeIn(500); }); current = next; }; $(function() { setInterval(changeBoxes, 5000); }); В чем проблема: В начале все нормально, один блок становится невидимым, другой появляется. Но через какое то время (примерно 5-10 минут) все блоке становятся видимыми и они начинают очень быстро появляться и исчезать. Аналогичная проблема с другим кодом: total_elems = $('.right_box .display .elems .right_box_center').length; //для примера 12 скажем elemsVisible = 9; // сколько элементов показывать (пачками по 9 :) ) steps = Math.ceil(total_elems/elemsVisible); // Сколько пачек всего получается currentStep = 0; // Текущая пачка)) function listPVT() { nextStep = currentStep+1; if (nextStep == steps) nextStep = 0; $('.right_box .display .elems').animate({top: '-'+(nextStep*9*40)+'px'}); currentStep = nextStep; } $(function() { setInterval(listPVT, 5000); }); Данный код выполняет следующее: Имеется много элементов обернутых в див, я ему короче просто меняю позиционирование. Получается как будто прокручивается список (вниз - верх). Тут тоже в начале все нормально, но через какое то время (как и в примере выше) начинает просто очень быстро прокручиваться туда-сюда. HTML разметку не показываю, с нее нет смысла, сам код работает, просто через какое то время начинает глючить. Никак не могу догнать где я что то упустил. Пробовал вместо интервала ставить тайм-аут, и в конце функции ее же вызывать через промежуток, получается те же самые глюки. Помогите кто чем может :) буду рад любым мыслям)) |
Может, перед анимацией stop() поставить?
|
kostr,
Спасибо огромнейшее)) помогло)) Не смог бы ты объяснить логику что происходило ? зачем нужно было останавливать анимацию, если она вроде сама останавливается (время повтора анимации больше чем время самой анимации) ? |
Дело в том, что у меня анимация не ускорилась, хотя работала долго. Подозреваю, в вашем документе есть еще что-то, что сбило настройку. А stop без вариантов останавливает все, и можно запускать заново.
|
kostr,
Спасибо большое еще раз, и за пояснения тоже. Не подумал о том что может быть конфликт с каким то другим скриптом. |
Часовой пояс GMT +3, время: 19:19. |