Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/40: Рейтинг темы: голосов - 40, средняя оценка - 4.78
 Аватар для logosik
3 / 3 / 0
Регистрация: 18.02.2013
Сообщений: 96

Случайная картинка

13.09.2013, 19:58. Показов 7644. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем не знаю может кто знает, у меня вот есть куча картинок в папке и мне нужно, чтобы по нажатию кнопки отображалась случайная картинка из этой папки)) Есть кто поможет буду премного благодарен)) Я знаю что это можно сделать на php, но вот интересует вопрос можно ли такое сделать на js так как мне не нужна перезагрузка страницы каждый раз)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.09.2013, 19:58
Ответы с готовыми решениями:

случайная картинка
Я не знаком с яваскрпитом и не знаю правильно ли я выбрал тему, но думаю, что правильно, так как уверен, что на html и css, которые я знаю...

Случайная ссылка
Здравствуйте. Помогите пожалуйста, нужно изменить код чтобы каждый раз при нажатии на кнопку скачать файл дополнительно открывалась...

Случайная надпись
Создаю сайт. Нужен код, выводящий случайную надпись при обновлении.

10
 Аватар для koza4ok
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
13.09.2013, 20:09
Вам прийдется все пути к картинкам загнать в массив и рандомно их доставать
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
13.09.2013, 20:35
HTML5
1
2
<img id=myimg src="image1.jpg"><br>
<input type=button value="Сменить картинку" onclick="smena()">
JavaScript
1
2
3
4
5
6
7
<script>
var mas=["image1.jpg","image2.jpg","image3.jpg"]; // Все названия картинок
function smena(){
   var r=Math.floor(Math.random()*mas.length);
   document.getElementById("myimg").src=mas[r];
}
</script>
0
 Аватар для logosik
3 / 3 / 0
Регистрация: 18.02.2013
Сообщений: 96
13.09.2013, 21:02  [ТС]
То что вы предлагаете это понятно и легко, но мне не нужно заносить названия картинок в массив, так как их там огромное количество, мне надо чтобы сам скрипт всё делал, а не я =) Не знаю может тут ajax нужно использовать...
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
13.09.2013, 21:27
в таком случае действительно нужна технология Ajax
по нажатию кнопки делаете AJAX-запрос к PHP-файлу, который "выдергивает" из серверной папки адрес случайной картинки и возвращает его странице
полученный от сервера адрес подставляете в src тега <img>
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
13.09.2013, 22:08
При плохой связи ждать придется после каждого нажатия.

Может при генерации страницы отдавать скрипту все имена или готовый массив?
Или один раз сгенерить массив и создать отдельный js, раз файлов так много.
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
14.09.2013, 00:30
Есть ещё вариант автоматом с помощью какого-то приложения переименовать все картинки по образцу на подобие img1, img2, img3, т. е. чтобы названия отличались только числом. (Или были числом) А случайное обращение осуществить примерно так:
document.getElementById("myimg").src="im g"+Math.floor(Math.random()*n);
где n - общее коли-ство картинок.
0
 Аватар для logosik
3 / 3 / 0
Регистрация: 18.02.2013
Сообщений: 96
14.09.2013, 06:33  [ТС]
Ну вот идея с переименовкой картинок я уже реализовывал, но он мне много раз повторял одни и те же картинки, я пробовал от этого избавиться, в массив их заносил проверял на соответствие один фиг всё так же и оставалось =(
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
15.09.2013, 18:20
Значит что-то не пошло в работе с массивом. Здесь Случайное, неповторяющееся число Вы генерирвали неповторяющееся число, и если всё было в порядке, сделайте так же и скартинками
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
17.09.2013, 01:44
Оказывается, есть ещё один прекрасный вариант. Допустим, в основном каталоге есть папка img/, в которой находятся картинки с произвольными именами. В переменную a помещаем PHP-скрипт, который возвращает список всех имён файлов в этой папке, разделённых через пробел. Потом каждое имя файла помещаем в отдельную ячейку массива b, и остаётся по нажатию кнопки выбрать из него случайную ячейку:
HTML5
1
2
<img id=myimg src="img/image.jpg"><br>
<input type=button value="Сменить картинку" onclick="smena()">
JavaScript
1
2
3
4
5
6
7
8
9
<script>
var n=100; // Количество картинок
var a='<?php if ($handle = opendir("/img")) {while (false !== ($entry = readdir($handle))) {if ($entry != "." && $entry != "..") {echo "$entry"; echo " ";}} closedir($handle);} ?>';
b=a.split(" ");
function smena(){
   var r=1+Math.floor(Math.random()*n);
   document.getElementById("myimg").src="img/"+b[r];
}
</script>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.09.2013, 04:05
Опан, а чем ваш "прекрасный вариант" принципиально отличается от ответа, написанного самым первым в этой теме?
Цитата Сообщение от koza4ok Посмотреть сообщение
Вам прийдется все пути к картинкам загнать в массив и рандомно их доставать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2013, 04:05
Помогаю со студенческими работами здесь

Случайная надпись
Долго искал, так ничего не получилось найти. Вобщем у меня есть Html страница, мне необходимо при перезагрузке странице отображать в...

Случайная пауза
Сейчас в скрипте wait(200); а нужно сделать случайную паузу в диапазоне от 1 до 1000 Подскажите, как это сделать ? Добавлено...

Случайная расстановка блоков
Здравствуйте, простите, что, возможно, не туда кинул тему, но вот вопрос: предположим на странице имеются 3 блока, расположенных вряд, друг...

Случайная функция css через js
&lt;script&gt; $(document).ready ( function(){ var R = Math.random() * (17 - 2) + 2; if (R = 2) {...

Случайная сортировка html блоков
Добрый день! Есть несколько html-блоков типа: &lt;table&gt;текст1&lt;/table&gt; &lt;table&gt;текст2&lt;/table&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru