случайные изображения из папки - PullRequest
1 голос
/ 27 ноября 2009

Я пытаюсь переписать свой код ниже, чтобы найти в папке все изображения (они будут пронумерованы, но могут быть пробелы, т.е. не 1.jpg, 2.jpg, 3.jpg, а вместо 1.jpg, 15 jpg, 60.jpg По этой причине я хотел бы найти папку, поместить все изображения в массив, а затем выбрать одно случайное изображение каждый раз, когда оно повторяется.

Любая помощь будет принята с благодарностью.

Во-первых, я сейчас указываю общее количество изображений над основным сценарием ниже:

imgWidth = 160,
imgHeight = 95,
imgTotal = 22,
total = 0,
tiles;


//create the HTML for the tiles and append that to the bg element
 function makeTiles(count){
     var html = '', imgNum;
     while(count--){
  imgNum = Math.floor(Math.random()*imgTotal + 1);
  html += "<div class='tile' style='background:url(public/images/portfolio/all/"+imgNum+".jpg) 0 0 no-repeat;' ><img style='opacity:0; filter:alpha(opacity=0);' src='public/images/portfolio/all/"+imgNum+"-c.jpg' alt='' /></div>\r";
     }
     $bg.append(html);
 }

Ответы [ 6 ]

3 голосов
/ 27 ноября 2009

Вам нужно будет создать список доступных изображений с чем-то другим, кроме javascript, так как он не имеет доступа к файловой системе, хотя в конце вы получаете доступ к изображениям через их URL.

Обходной путь: включите некоторые списки каталогов для изображений, затем перейдите на эту страницу с помощью javascript, проанализируйте файлы изображений и создайте из них массив; но, честно говоря, есть более короткие и надежные способы сделать это ...

псевдокод ..

$ ls -1 *jpg > imagesfilelist.txt
$ cp imagefilelist.txt /some/publicly/accessible/folder

JS / JQuery ..

$.get("/some/publicly/accessible/folder/imagefilelist.txt", function(data){
   alert("My image files: " + data);
});

...

2 голосов
/ 27 ноября 2009

JavaScript не может получить доступ к локальным папкам. точка.

Повторюсь: вы не можете "искать папку", чтобы получить "массив изображений" в JS. Вы можете выполнить эту часть (только сервер!) В PHP или на таком серверном языке и возвращать результаты через AJAX.

0 голосов
/ 27 ноября 2009

Почему бы не загрузить свои изображения на бесплатный хостинг-сайт (например, Flickr), взять фид из вашей группы изображений и выбрать оттуда случайное изображение?

0 голосов
/ 27 ноября 2009

То, как вы пытаетесь это сделать, неверно. Но с некоторыми хитростями это может сработать, но это очень неправильный способ делать подобные вещи.

Вы можете создать список файлов с помощью php и передать его в свой скрипт. Вы даже можете создать php-скрипт, который будет генерировать ваш скрипт, уже заполненный необходимыми данными, но это не лучший способ сделать это тоже.

Итак, лучшие способы это: - создать HTML со списком имен файлов / изображений (видимых или невидимых) по php, а затем манипулировать им с помощью javascript; - создать html и javascript, которые будут выполнять AJAX-запрос к php-скрипту, который будет возвращать список имен файлов (форматируется как JSON, если хотите).

0 голосов
/ 27 ноября 2009

Javascript не сможет просматривать папки. Что вам нужно сделать, это создать массив доступных изображений, а затем выбрать случайное. Вы можете сделать это, используя любую серверную технологию (php, rails, java, .net ...).

0 голосов
/ 27 ноября 2009

Чтобы делать то, что вы хотите, вам нужно знать, как называются изображения. JavaScript не может получить доступ к папке напрямую, как указано выше. Вам потребуется использовать сценарий на стороне сервера, чтобы предоставить массив изображений, которые JS может выбрать случайным образом для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...