[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с задержкой времени
Jinus
Доброго времени суток! Недавно столкнулся с такой проблемой:
Есть несколько изображений, которые нужно с определённым интервалом "прокрутить" 1 раз.
Написал 2 ф-ции:

function preview() {
for(var n = 1; n <= 5; n++)
{
change_img(n,0); //ф-ция, которая меняет изображение
sleep(1000);
}
change_img(1,1); //ф-ция, которая меняет изображение
}

function sleep(s) {
var start = new Date().getTime();
for(var i = 0; i >= 0; i++) {
if ((new Date().getTime() - start) > s) {
break;
}
}
}


запускаю так:
<body onLoad="preview();">

В Опере работает - всё супер, но в ФФ и ИЕ не хочет - просто браузер виснет на время выполнения ф-ции.
Потом попробовал использовать setTimeOut():

function preview() {
for(var n = 1; n <= 5; n++)
{
// change_img(n,0);
sleep(1000,n);
}
change_img(1,1);
}

function sleep(s,n) {
setTimeout('change_img('+n+',0)', s);
}

Но так вообще нигде корректно не работает sad.gif
Есть у кого идеи по кроссбраузерной реализации моей задачи?
P.S: AJAX не хотел бы использовать...



Спустя 23 минуты, 10 секунд (29.04.2010 - 12:31) ZSH написал(а):
setInterval

Спустя 2 минуты, 34 секунды (29.04.2010 - 12:33) Jinus написал(а):
Цитата (ZSH @ 29.04.2010 - 09:31)
setInterval

Эта ф-ция не подходит:
1. Как я буду менять названия изображений?
2. Как я остановлю её кода изображения закончатся?

Спустя 8 минут, 13 секунд (29.04.2010 - 12:42) ZSH написал(а):

var lala = setInterval(.....);
clearInterval(lala); остановит


Спустя 18 минут, 15 секунд (29.04.2010 - 13:00) Jinus написал(а):
Цитата (ZSH @ 29.04.2010 - 09:42)
var lala = setInterval(.....);
clearInterval(lala); остановит

как не старался, всё равно не получается - либо я вас не понимаю, либо вы меня...
Мне нужно показать 5 картинок с интервалом в 1 секунду, но только 1 раз.
Если вы правильно поняли, то объясните плз как можно этой ф-цией решить задачу.

Спустя 9 минут, 58 секунд (29.04.2010 - 13:10) ZSH написал(а):
примерно так:
var img = 1;

var interval = setInterval("change_img", 1000);

function change_img()
{
вставляеш картинку img
img = img + 1;
if(img > 5)
{
clearInterval(interval);
}
}


http://javascript.ru/setInterval

Спустя 4 минуты, 46 секунд (29.04.2010 - 13:15) Jinus написал(а):
Цитата (ZSH @ 29.04.2010 - 10:10)
примерно так:
var img = 1;

var interval = setInterval("change_img", 1000);

function change_img()
{
  вставляеш картинку img
  img = img + 1;
  if(img > 5)
  {
    clearInterval(interval);
  }
}

Я пробовал этот вариант - не работает.
Что примечательно: ошибок никто не выдаёт...

Цитата
http://javascript.ru/setInterval

Читал уже...

Спустя 4 минуты, 33 секунды (29.04.2010 - 13:19) ZSH написал(а):
покаж функцию change_img()

Спустя 2 минуты, 59 секунд (29.04.2010 - 13:22) Jinus написал(а):
Цитата (ZSH @ 29.04.2010 - 14:19)
покаж функцию change_img()

function change_img(i, t)
{
if(t == 0) {
document.n01.src = '../path/'+i+'.jpg';
} else {
bla bla bla
}
}

Спустя 5 часов, 2 минуты, 51 секунда (29.04.2010 - 18:25) ZSH написал(а):
полный путь к картинке попоробуй

Спустя 22 минуты, 5 секунд (29.04.2010 - 18:47) Jinus написал(а):
Цитата (ZSH @ 29.04.2010 - 19:25)
полный путь к картинке попоробуй

Дык ф-ция же рабочая...или при использовании setInterval есть свои ньюансы?
P.S.:Скрипт на работе - щас нету возможности проверить.

Спустя 3 часа, 24 минуты, 30 секунд (29.04.2010 - 22:11) ZSH написал(а):
<script language="javascript">
var i = 1;
var interval = setInterval(change_img, 1000);
function change_img()
{
document.images.name_img.src = 'images/img'+i+'.jpg';
i = i + 1;
if(img > 5)
{
clearInterval(interval);
}
}

</script>


вот 100% работает

Спустя 12 часов, 4 минуты, 13 секунд (30.04.2010 - 10:16) Jinus написал(а):
спс, работает!!!
Но почему тода мой вариант не работал? sad.gif

Спустя 30 минут, 13 секунд (30.04.2010 - 10:46) ZSH написал(а):
обрати внимание на отсутствие кавычек при вызове функции change_img из setInterval

var interval = setInterval(change_img, 1000);


P.S.: я сам сначала ступил

Спустя 33 минуты, 54 секунды (30.04.2010 - 11:20) Jinus написал(а):
Цитата (ZSH @ 30.04.2010 - 11:46)
обрати внимание на отсутствие кавычек при вызове функции change_img из setInterval

Да, но:
Цитата
В каком виде указывать первый параметр - разницы нет.

(с) javascript.ru
blink.gif

Спустя 43 минуты, 47 секунд (30.04.2010 - 12:04) ZSH написал(а):
вот этого я не знаю sad.gif , но с кавычками не работало, и я не однократно заморачивался в таких случаях с setInterfal и settimeOut.
может ктото из более понимающих в JS объяснит unsure.gif

Спустя 12 минут, 48 секунд (30.04.2010 - 12:16) Jinus написал(а):
Цитата (ZSH @ 30.04.2010 - 13:04)
вот этого я не знаю, но с кавычками не работало, и я не однократно заморачивался в таких случаях с setInterfal и settimeOut.
может ктото из более понимающих в JS объяснит

Ок, спс биг за помощь


_____________
Жизнь вообще тяжёлая штука, но с?ка интересная.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.