Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Если фото нет, то стоп (https://javascript.ru/forum/misc/52392-esli-foto-net-stop.html)

qwe88 17.12.2014 13:53

Если фото нет, то стоп
 
Добрый день!
Есть скрипт простейшей галереи. Подскажите, пожалуйста, как сделать так, что бы цикл остановился, как только в папе меньше фоток, нежели задано?
Например, цикл задан на 44 фотки, а если их меньше в папке, то он показывает, что фото не нашел и можно дальше продолжать листать несуществующие фотографии.

Вот сам код:
Код:

<script language = "JavaScript">

numimg=0
imgslide=new Array ()
<!-- -------++++++++++------ -->
 var i;
 for (i = 0; i <= 44; i++)
 {imgslide[i]=new Image ()
 imgslide[i].src ="gorod/"+i+".jpg" }

<!-- -------++++++++++------ -->
function dem(n)

{
if (n==1)
{ numimg++
if (numimg==44)
numimg=0;
}
else
{numimg--
if (numimg== -1)
numimg=44;
} document.images [0].src=imgslide [numimg].src }

</script>


рони 17.12.2014 14:09

qwe88,
заполняйте массив только существующими src и не будет проблем

qwe88 17.12.2014 14:11

Что-то не очень понял.
Смысл такой: на разных страницах будет галерея с разными фотками. Наполнять будет заказчик. Количества фото не знаю.

Появилась мысль подсчитать количество фото в папке с помощью php. Но как значение вставить вместо 44 не понимаю.

рони 17.12.2014 14:12

Цитата:

Сообщение от qwe88
Количества фото не знаю.

а откуда цифра 44?

qwe88 17.12.2014 14:12

Это условная цифра. Поставлю ему запас на 60

рони 17.12.2014 14:13

впрочем цифра может быть любой больше необходимого если
Цитата:

Сообщение от рони
заполняйте массив только существующими src и не будет проблем


qwe88 17.12.2014 14:21

Это как?

рони 17.12.2014 14:30

qwe88,
... мда ... который уже загрузчик за неделю ... не любит народ поиск ... :lol: :cray:
var numimg = 0,
     imgslide = [],
     i;
 for (i = 0; i < 60; i++) {
     var a = new Image;
     a.onload = function() {
         imgslide.push(this.src)
     };
     a.src = "gorod/" + i + ".jpg";
     a.complete && a.onload()
 }

 function dem(n) {
     if (n == 1) {
         numimg++;
         if (numimg == imgslide.length) numimg = 0
     } else {
         numimg--;
         if (numimg == -1) numimg = imgslide.length - 1
     }
     document.images[0].src = imgslide[numimg]
 };

qwe88 17.12.2014 14:32

Супер!
Спасибо вам огромное!


Часовой пояс GMT +3, время: 03:56.