Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать рандомные картинки при перезагрузке? готовый пример, куки, Math.random и т.д. 
:(
    Опции темы
гость Slam
Дата 23.2.2005, 12:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Напишите код, для того что бы при открытии моей странички в месте под определенную картинку появлялась рандомная картинка из перечисленных, заранее прошу прощения за то что если этот впрос неоднократно обсуждался, просто я не имею возможности прочитать много тем, т.к. плачу за траффик, а денег на счету Очень мало, заранее спасибо за помощ. повторюсь мне нужен только код, или ссылку на код, ещё раз спасибо. smile
  Вверх
LSD
Дата 23.2.2005, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15717
Регистрация: 24.3.2004
Где: Dublin

Репутация: 1
Всего: 537



Это в JavaScript.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Aliance
Дата 23.2.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



random.js
Код

// Рандомный показ баннера
 var k;
     imgprint=1;
     imgall=1;
     var ran = new Array(imgprint-1);

     function random_number() {
        return Math.round(Math.random() * imgall);
     }

     function check(num) {
        while (k != num) {
           ran[num] = random_number();
           k=0;
        for ( a=0; a < num; a++) {
           if (ran[a] != ran[num]) {
              k++
           }
        }
        }
     }

     ran[0] = random_number();

     for (a=1; a < imgprint; a++) {
        check(a);
     }

     img = new Array(imgall);
     link = new Array(imgall);
     alt = new Array(imgall);

     img[0]="images/toplogo0.gif"; link[0]="http://aliance.hoha.ru"; alt[0]="SUT - Solutions of Users Tasks";
     img[1]="images/toplogo1.gif"; link[1]="http://aliance.hoha.ru"; alt[1]="SUT - Solutions of Users Tasks";

     for (i=0; i < imgprint; i++) {
        document.write('<a href="' + link[ran[i]] + '">');
        document.write('<img WIDTH="468" HEIGHT="60" src="' + img[ran[i]] + '"');
        document.write('alt="' + alt[ran[i]] + '"></a>');
     }
     document.write('</center>');


В нужном месте вставляешь:
<script tyle="text/javascript" src="random.js"></script>

Есесно, что картинки, ссылки и названия берешь свои, заменяя их в этой строчке:
Цитата
      img[0]="images/toplogo0.gif"; link[0]="http://aliance.hoha.ru"; alt[0]="SUT - Solutions of Users Tasks";
      img[1]="images/toplogo1.gif"; link[1]="http://aliance.hoha.ru"; alt[1]="SUT - Solutions of Users Tasks";


ЗЫ: они должны быть одного размера!
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 23.2.2005, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Aliance за функцию check вместе с:
Код
for (a=1; a < imgprint; a++) {
        check(a);
}

Надо давать 20 лет растрела!!! smile Ну на столько не оптимально нельзя писать. Когда нибудь ты соскочишь со скриптов и пересядешь за что нибудь более гибкое, а за такой код тебя из конторы гнать будут smile

Пробуем написать правильно. Задача: смена картинки при каждой перезагрузке страницы. Кстати баннерокрутилку так делать не нужно, пожалейте трафик юзера smile
Нельзя показать юзеру одну и ту же картинку два раза подряд, потому будем использовать куки для сохранения предидущей картинки.

Код
var images=[ //регистр всех картинок, здесь думаю ясно
{p:"./images/img1.jpg", w:400, h:500},
{p:"./images/img2.jpg", w:500, h:400},
{p:"./images/img3.jpg", w:200, h:300}
];

//установка куки, за разьяснениями в поиск, код много раз обсуждался
function setCookie (name, value, expires, path, domain, secure) {
 var curCookie = name + "=" + escape(value) +
     ((expires) ? ";expires=" + expires : "") +
     ((path) ? ";path=" + path : "") +
     ((domain) ? ";domain=" + domain : "") +
     ((secure) ? ";secure" : "");
 if ((escape(value)).length <= 4000) document.cookie = curCookie+";";
}

//удалить куку
function getCookie (name) {
 var prefix = name + "=";
 var cookieStartIndex = document.cookie.indexOf(prefix);
 if (cookieStartIndex == -1) return null;
 var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
 if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
 return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

//достаём HTML код рандомной картинки
function getRandomImage() {
  var im=images[0];
  if(images.length>1) { //если есть из чего выбирать
     var vim=parseInt(getCookie("rimg")); //если есть чего в куках
     vim=isNaN(vim)? -1: vim;
 
     var nim=vim;
//достаём рандомный номер не равный предыдущему
     while(nim == vim) nim=Math.round(Math.random()*(images.length-1));
     im=images[nim];
     setCookie("rimg", nim);
//    alert("next: "+nim+", prev: "+vim); //отлов ошибок
  }
//если база не пуста
  if(im) return "<img src='"+im.p+"' height='"+im.h+"' width='"+im.w+"' border='0' />";
  else return "<span style='color: red; font-family:Verdana; font-size:14px'>No images in DB</span>";
}

//ну и собстна пишем картинку в поток документа.
document.write(getRandomImage());



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 23.2.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Sardar
Скрипт не мой! Скрипт скачаный, думаю не мне тебе объяснять какие они там.

ЗЫ: а когда я постил, тема была другой...
М
 
Ну тогда хотя бы читай исходник, а то учишь народ пакости :)
Я в 80% случаев меняю заголовок, ибо пишут часто не ясный/информативный.

PM MAIL WWW ICQ Skype   Вверх
SanySiro
Дата 22.8.2009, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.8.2009

Репутация: нет
Всего: нет



Всем привет! Прошу помощи! Я использовал вышеописанный скрипт смены картинки при каждой перезагрузке страницы. За него большое спасибо! Он работает, но только в Опере. В IE7 он не работает. Как это исправить?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.