Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Смена изображения через определенные промежутки


Автор: HalkaR 3.6.2004, 17:47
Есть список изображений, есть картинка. Необходимо, чтобы изображение на этой картинке поочередно (через заданный промежуток времени) менялось.

Автор: <Spawn> 3.6.2004, 19:53
Хм, сам я еще почти не программил на JavaScript, но есть такая мысль - заюзай setInterval, т.е.

Код

<head>
 <script language="javascript">
   var IntervalHandle;
   var Pictures = Array("Воле подъезда2.jpg", "Work_.jpg");
   var CurrentPos = 0;
   function NextImage()
  {
    document.all.TestImg.src = Pictures[CurrentPos];
    CurrentPos++;
    if (CurrentPos == Pictures.length)
      CurrentPos = 0;
  }
   function AfterLoad()
   {
     IntervalHandle = setInterval(NextImage, 1000);
   }
   function Unload()
   {
     if (IntervalHandle)
       clearInterval(IntervalHandle);
   }
 </script>
</head>
<body onload="AfterLoad()" onunload="Unload()">
 <img id="TestImg" src="Воле подъезда2.jpg"></img>
</body>

Добавлено @ 19:55
Такой способ видимо загружает картинку в имадж каждый раз из файла. Что бы этого избежать по идее можно создать несколько имаджей, позиционировать их как нужно и отображать по одной.

Автор: HalkaR 3.6.2004, 21:07
<Spawn>, я вообще в ЯваСкриптах не разбираюсь. Твой код работает - спасибо. Скорре всего я буду поочередно выставлять visible для картинок.

Автор: GoodBoy 4.6.2004, 10:50
HalkaR
А стоит ли так париться??? Может тебе есть смысл использовать анимированный гиф??? Или там более сложная задача???

Автор: Sardar 4.6.2004, 23:56
Не нравится мне подход с кучей картинок и style.visibility. Вариант с анимацией сразу откидываю, скорее всего делаешь слайд шоу. Тогда хорошо бы при загрузке страницы загрузить автоматом 2-3 картинки, остальные после загрузки друг за дружкой, пока пользователь предидущие смотрит. Понятно что грузить все картинки сразу нельзя.
Код будет прост, особенно для ИЕ. Не помню точно есть ли в Мозилле у img поле readyState - нужно для интерактивной загрузки.

Автор: HalkaR 6.6.2004, 00:05
Действительно это что-то типа слайд-шоу. Но дело в том, что сама страничка генерится скриптом на ПХП, так что все нормально.

Автор: Sardar 6.6.2004, 00:36
Цитата
Но дело в том, что сама страничка генерится скриптом на ПХП, так что все нормально.

Не понял, причем PHP? Картинки по любому надо загрузить к пользователю. Можно заставить браузер повиснуть на пару минут загружая все сразу, а можно подгружать их по мере надобности.

Опиши идею, здесь ее реализуем.

Автор: HalkaR 6.6.2004, 12:50
Все уже реализованно. В зависимости от количества картинок выбирается метод. Либо все сразу, либо в порядке очереди.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)