Цитата:
|
можешь засечь промежутки между срабатыванием таймера,
это даст пищу для размышлений. Посмотри как ведёт себя обработчик когда тебя нет на странице, и как ведёт себя в момент переключения. <script> //глобальная переменная var oldTime; f=function(){ //внутри обработчика var d = new Date(),time=0; time=d.getTime(); // результат смотреть будем в консоли console.log(d.toLocaleTimeString(),"=",time-oldTime); //выведем на экран, для наглядности на форуме window.document.write(d.toLocaleTimeString()+"="+(time-oldTime)+"<br/>"); oldTime=time; setTimeout(f,1000); } f(); </script> |
Щас попробовал выводить только время срабатывания. Действительно, работает и в фоне, без каких либо проблем.
Я пришел к мысли, что это тормозит jquery, при переключении слайдов у меня используются методы fadein() и fadeout() видимо jq не выполняет их в фоне (что в принципе логично), а накапливает их где то в своем кеше. Как с этим бороться я не представляю. м.б. есть какие то настройки библиотеки, для регулирования таких ситуаций? |
хех. победил это )
перед запуском анимации проверяю состояние state, которое устанавливается так: $(window).blur(function(){ state = 0; }); $(window).focus(function(){ state = 1; }); |
хз, но как вариант можно попробывать определять активность страницы.
Если страница активна тогда таймер работает, если не активна тогда таймер неработает $(window).blur(function() { // здесь унечтожим таймер clearTimeout(timeOut ); }); $(window).focus(function() { // здесь запустим функцию autoAdvance(); }); блин на секунду опаздал)) |
Цитата:
Дело в том, что событие $(window).focus происходит не однократно, при получении фокуса, как мы с вами подумали, а постоянно. Именно поэтому я сделал через переменную состояния ) Ради эксперимента можете вызвать алерт из $(window).focus и посмотреть что выйдет ) |
написал простейший слайдер с помощью setTimeout и не вижу никаких проблем о которых говорится в постах
Или неправильно смотрю? http://all-html5.narod.ru/sliders/0/slider.htm |
Цитата:
|
Часовой пояс GMT +3, время: 00:28. |