Баг со скриптом

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Titorovich
Сообщения: 1
Зарегистрирован: 17 сен 2013, 15:19

17 сен 2013, 15:24

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

Вот собственно сам код скрипта:

Код: Выделить всё

var image_count = 3;
var interval = 5000;
var time_out = 10;
var i = 0;
var timeout;
var opacity = 100;

function change_image() {
 opacity--;
 var j = i + 1;
 var current_image = 'img_' + i;
 if (i == image_count) j = 1;
 var next_image = 'img_' + j;
 document.getElementById(current_image).style.opacity=opacity/100;
 document.getElementById(current_image).style.filter='alpha(opacity='+opacity+')';
 document.getElementById(next_image).style.opacity=(100-opacity)/100;
 document.getElementById(next_image).style.filter='alpha(opacity='+(100-opacity)+')';
 timeout = setTimeout("change_image()", time_out);
 if (opacity==1) {
  opacity = 100;
  clearTimeout(timeout);
 }
}

setInterval (function() {i++; if (i>image_count) i=1; change_image();}, interval);
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

17 сен 2013, 16:15

Это происходит из-за того что браузеры снижают частоту срабатывания тамера/интервала на неактивных вкладках. Единственный вариант контролировать время анимации..
[syntax=Delphi] [/syntax]
Ответить