Показать сообщение отдельно
  #9 (permalink)  
Старый 10.05.2012, 13:01
Интересующийся
Отправить личное сообщение для aphextwin Посмотреть профиль Найти все сообщения от aphextwin
 
Регистрация: 10.04.2012
Сообщений: 11

Возможно вы меня не правильно поняли.
Когда я открываю сайт - слайдер работает, меняет картинки. Правда, при ручном переходе между слайдерами и вправду стоит убивать таймер, спасибо за идею! Но стоит уйти на другую вкладку на пару минут и вернуться - как я думаю, события накапливаются, и слайдер начинает бешено листаться. Надо заметить, что это наблюдается в фф 701, хром 18.
В опере вроде все работает как надо.

Расскажу о принципе работы, верстку не трогаю, только скрипт:

Вот так происходит смена слайдов, все в принципе просто, конечно используем jq:
$('#left').click(
        function()
        {
            curr = $('.slider_container').find('.slider_item:visible');
            curr.fadeOut();
            if(curr.next().length)curr.next().fadeIn();
            else $('.slider_container').find('.slider_item:first').fadeIn();
        }
    );


Далее, первый вызов ф-ции происходит по событию document.ready т.е. при загрузке страницы.

А сама ф-ия autoAdvance() либо делает вид, что кликает по стрелочке
$('#left').trigger('click',[true]);

либо исполняет тот же код:
curr = $('.slider_container').find('.slider_item:visible');
curr.fadeOut();
if(curr.next().length)curr.next().fadeIn();
else $('.slider_container').find('.slider_item:first').fadeIn();

потом происходит вызов самой себя, через задержку в 7 секунд:
timeOut = setTimeout(autoAdvance,7000);

В обоих случаях происходит описанный мною глюк ) Вызовы накапливаются, и все летает, когда включишь нужную вкладку.

Я тоже хотел сделать проверку временного интервала, но чего то не нашел аналога php time() в js. Может вы подскажете, как это сделать.

Последний раз редактировалось aphextwin, 10.05.2012 в 13:05.
Ответить с цитированием