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

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

13.09.2013, 19:58. Показов 7695. Ответов 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,531
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
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru