Рандомно меняющийся background - как сделать?

12
melkozaur
На сайте с 06.04.2010
Offline
536
6825

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

var bgPath = 'bg/bg';
var imagesNumber = 5;
var rndBg = Math.floor(Math.random() * imagesNumber);
document.body.style.backgroundImage = 'url(' + bgPath + rndBg + '.gif)';

Как это можно сделать?

RO
На сайте с 13.07.2009
Offline
88
#1

в папке, где лежит страницы, на которой запускается скрипт, должна существовать папка «bg» содержащая gif изображения с именами bg1.gif bg2.gif bg3.gif bg4.gif bg5.gif

melkozaur
На сайте с 06.04.2010
Offline
536
#2

RedOK,

Так и сделал. Не работает.

O
На сайте с 29.05.2008
Offline
195
#3

Можно реализовать на PHP.

Создаете сессию и записываете туда значение 0. После каждого обращения плюсуете значение до максимального значения, потом сбрасываете. Генерируете ссылку и с помощью регулярного выражения вставляете её в временный CSS файл, который и выдаете пользователю. А лучше вообще в секцию head обычным plain text.

IL
На сайте с 20.04.2007
Offline
435
#4
melkozaur:
Так и сделал. Не работает.

melkozaur, адрес в студию.. ну или в личку.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
melkozaur
На сайте с 06.04.2010
Offline
536
#5

ivan-lev,

Создал с нуля страничку - заработало. У меня в css был background указан, и видимо поэтому не менялось ничего.

Но возник другой вопрос: сейчас есть 11 картинок, они меняются при обновлении страницы, но иногда проскакивает белый фон - как этого избежать?

http://ko6.ru/

S
На сайте с 20.06.2011
Offline
14
#6
melkozaur:
Но возник другой вопрос: сейчас есть 11 картинок, они меняются при обновлении страницы, но иногда проскакивает белый фон - как этого избежать?
http://ko6.ru/

Или добавь еще одно изображение с названием bg0.gif, или же измени скрипт:

var rndBg = Math.floor(Math.random() * imagesNumber) || 1;

IL
На сайте с 20.04.2007
Offline
435
#7

А соответственно bg/bg11.gif никогда не будет задействован..

Переименовать его в bg0

или добавить +1

var rndBg =  Math.floor(Math.random() * imagesNumber) + 1;
E
На сайте с 03.12.2010
Offline
140
#8

А почему именно рендомно. Имхо лучше сделать циклически от 1 до 5 для каждого юзера.

ЗЫ Код в начале топика - правильный.

melkozaur
На сайте с 06.04.2010
Offline
536
#9

Всем спасибо!

---------- Добавлено 07.05.2013 в 02:43 ----------

eBasher,

Да не знаю, так по-моему интересней.

O
На сайте с 29.05.2008
Offline
195
#10
melkozaur:
Да не знаю, так по-моему интересней.

Так беграунд может повторятся и будет совсем не интересно. Учтите это.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий