Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Смена фона при перезагрузке страницы (https://javascript.ru/forum/dom-window/3298-smena-fona-pri-perezagruzke-stranicy.html)

Shokoladniu 05.04.2009 02:14

Смена фона при перезагрузке страницы
 
Задача: смена фонового изображения при перезагрузке страницы
Что уже имеется:
создал массив картинок
var Pic = new Array() 

Pic[0] = 'x1.png'
Pic[1] = 'x2.png'
Pic[2] = 'x3.png'
Pic[3] = 'x4.png'


и нарыл на форуме функцию, которая у боди меняет фоновую картинку

function changeBg(){
document.getElementsByTagName('body')[0].style.backgroundImage="url('1.jpg')"
}


Вопрос 1: как сделать,чтобы в функции была не одна картинка 1.jpg, а рэндомная картинка из массива.
Вопрос 2: как привязать это событие к перезагрузке страницы. Есть body onLoad и onUnload, а релоада то нету?

x-yuri 05.04.2009 03:54

1) Math.random
2) reload нету, а зачем делать резличие между загрузкой и повторной загрузкой страницы?

Shokoladniu 05.04.2009 12:19

Написал такой скрипт - но проблема в том, что math.random выводит значение в диапазоне 0-1, а мне надо в диапазоне целых значений от 1 до 20 (например). Вот мой скрипт
var img_name = ""
var img_suffix = "x"
var img_ext = ".gif";
var result = "";

img_name= Math.random();
result = img_suffix + img_name + img_ext

alert(result);


По второму вопросу - понял, что надо повесить событие body onLoad просто, я правильно понял?

x-yuri 05.04.2009 12:38

1) Math.round(Math.random()*20)
2) насколько я понял ответ: "для этого нету причин"

Shokoladniu 05.04.2009 12:51

Не могу понять, почему не работает - вроде все директории и файлы есть, путь правильный...
var img_name = ""
var img_dir = "images";
var img_suffix = "x"
var img_ext = ".png";
var result = "";

img_name= Math.round(Math.random()*20);
result = img_dir + "/" + img_suffix + img_name + img_ext

function changeBg(){
document.getElementsByTagName('body')[0].style.backgroundImage="url('result')"
}

x-yuri 05.04.2009 12:58

когда не можешь понять, надо отлаживать: alert или console.log (firebug)

Shokoladniu 05.04.2009 13:13

насколько я понял
в style.backgroundImage="url('...')" нельзя вставить result. А через что его тогда пихать? innerhtml?

x-yuri 05.04.2009 13:52

а чего ты так решил?

Shokoladniu 05.04.2009 13:54

потому что result становится не функцией, а простым именем файла "result" которого естественно нет.
Не подскажете в какую сторону копать?

x-yuri 05.04.2009 13:58

если ты путь "слепить" смог
result = img_dir + "/" + img_suffix + img_name + img_ext

то что мешает к нему "долепить" url(...)?

p.s.
var a = 1;
alert('a');

что по-твоему должно вывести?


Часовой пояс GMT +3, время: 09:02.