Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2009, 02:14
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

Смена фона при перезагрузке страницы
Задача: смена фонового изображения при перезагрузке страницы
Что уже имеется:
создал массив картинок
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, а релоада то нету?
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2009, 03:54
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

1) Math.random
2) reload нету, а зачем делать резличие между загрузкой и повторной загрузкой страницы?
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2009, 12:19
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

Написал такой скрипт - но проблема в том, что 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 просто, я правильно понял?
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2009, 12:38
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

1) Math.round(Math.random()*20)
2) насколько я понял ответ: "для этого нету причин"
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2009, 12:51
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

Не могу понять, почему не работает - вроде все директории и файлы есть, путь правильный...
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')"
}
Ответить с цитированием
  #6 (permalink)  
Старый 05.04.2009, 12:58
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

когда не можешь понять, надо отлаживать: alert или console.log (firebug)
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2009, 13:13
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

насколько я понял
в style.backgroundImage="url('...')" нельзя вставить result. А через что его тогда пихать? innerhtml?
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2009, 13:52
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а чего ты так решил?
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2009, 13:54
Аспирант
Отправить личное сообщение для Shokoladniu Посмотреть профиль Найти все сообщения от Shokoladniu
 
Регистрация: 28.03.2009
Сообщений: 32

потому что result становится не функцией, а простым именем файла "result" которого естественно нет.
Не подскажете в какую сторону копать?
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2009, 13:58
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

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

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

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

что по-твоему должно вывести?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
смена картинок при нажатии sdff Общие вопросы Javascript 15 08.02.2014 17:08
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24
Смена id при клике Nestor Общие вопросы Javascript 6 04.03.2009 19:10
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04
Изменение шапки при обновлении страницы nasty blood (X)HTML/CSS 0 07.04.2008 13:13