Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.08.2010, 15:31
Новичок на форуме
Отправить личное сообщение для Netherlandman Посмотреть профиль Найти все сообщения от Netherlandman
 
Регистрация: 23.08.2010
Сообщений: 9

случайная смена фона сайта на jquery
Всем доброго времени суток.
На одном из моих сайтов возникла необходимость случайной смены фона.
То есть к примеру зашел я на одну из страниц сайта фон один, перешел на другую сменился на другой.
Фоновое изображение и цвет фона задается для тега body. Изображения находятся в отдельной папке images и всего их[изображений] три, но каждому из них нужен свой цвет фона.
Решил реализовать это на jQuery, так как судя по всему этот фреймворк более менее доступный. Но отсутствие опыта в скриптинге конечно сказывается, застрял на том как задать случайные переменные.
Вот то, что имею на данный момент (мой кривой код)
$(document).ready(function() {
		var a=Math.random() * 3;
		if(a=1)
		$('body') .css('background','#91BD5B url(images/bg2.jpg) no-repeat center top');
		if(a=2)
		$('body') .css('background','#0A1229 url(images/bg3.jpg) no-repeat center top');
		if(a=3)
		$('body') .css('background','#213051 url(images/bg1.jpg) no-repeat center top');
	});

наверняка и переменные задал не правильно и реализовать все можно проще, поэтому прошу помощи у вас.
Буду очень признателен за пояснения!
Ответить с цитированием
  #2 (permalink)  
Старый 23.08.2010, 15:53
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Netherlandman
судя по всему этот фреймворк более менее доступный
Одно мартини, и jQuery готова на все?
Если это все, что есть на js на странице, то есть ли смысл подключать целый фреймворк? На чистом js это будет 5 строк.
Сообщение от Netherlandman
var a=Math.random() * 3;
Это даст неравномерное распределение вероятностей

Последний раз редактировалось Sweet, 23.08.2010 в 15:58.
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2010, 16:11
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

используйте оператор сравнения, вместо оператора присваивания

к тому же случайной число следует округлять
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2010, 16:15
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

<body><script>
var bg = ['#FF0', '#F0F', '#0FF'], n
while(n == undefined){
  n = Math.round(Math.random()*4)
  if(n==0||n==4) n = undefined
}
document.body.style.background = bg[--n]
</script></body>

И нечего джейКверить моцк
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2010, 17:31
Новичок на форуме
Отправить личное сообщение для Netherlandman Посмотреть профиль Найти все сообщения от Netherlandman
 
Регистрация: 23.08.2010
Сообщений: 9

спасибо большое за оперативность.
jQuery был выбран потому что уже используется на странице, а так же потому, что после года веб-дизайнинга очень хочется освоить азы скриптов, а jquery часто рекомендуют для новичков.
понимаю, что для полного понимания надо изучать непосредственно java, но для меня сейчас это непосильная задача, поскольку еще и в дизайне надо много чего осваивать, а jquery до этого примера выручал (правда я в основном переделываю чужие скрипты, а свои если и пытаюсь писать то на примитивном уровне).
попробую реализовать на java, но если вам будет не трудно, то подскажите как можно это реализовать при помощи jquery
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2010, 17:48
Новичок на форуме
Отправить личное сообщение для Netherlandman Посмотреть профиль Найти все сообщения от Netherlandman
 
Регистрация: 23.08.2010
Сообщений: 9

кое-что получилось
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    <script type="text/javascript">
	$(document).ready(function() {
		var a=Math.round(Math.random() * 3);
		if(a==2)
		$('body') .css('background','#91BD5B url(images/bg2.jpg) no-repeat center top');
		if(a==1)
		$('body') .css('background','#0A1229 url(images/bg3.jpg) no-repeat center top');
		if(a==3)
		$('body') .css('background','#213051 url(images/bg1.jpg) no-repeat center top');
	});
</script>

вроде как все работает.

правда заметил какую-то хрень с моим "любимым IE" на сайте. если кому не трудно можете посмотреть, через все браузеры все ок, кроме IE - иногда пропадает сайдбар, в котором тоже есть один скриптик (в меню). странно что пропадает весь сайдбар...

Последний раз редактировалось Netherlandman, 23.08.2010 в 18:49.
Ответить с цитированием
  #7 (permalink)  
Старый 24.08.2010, 20:09
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

У Вас получается очень неравномерное распределение, да еще и с «белыми пятнами». См. картинку.
Изображения:
Тип файла: gif rand-ops.gif (8.6 Кб, 24 просмотров)
Ответить с цитированием
  #8 (permalink)  
Старый 24.08.2010, 22:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от subzey
У Вас получается очень неравномерное распределение, да еще и с «белыми пятнами».
А не пофиг ли? Тут вроде тупо фон меняют.
Ответить с цитированием
  #9 (permalink)  
Старый 25.08.2010, 03:11
Новичок на форуме
Отправить личное сообщение для Netherlandman Посмотреть профиль Найти все сообщения от Netherlandman
 
Регистрация: 23.08.2010
Сообщений: 9

да в принципе большого значения это не имеет, но если можете подсказать как сделать более равномерно, то исправлю. ну или сам может дойду до этого рано или поздно )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
смена фона div booodyk Общие вопросы Javascript 9 28.04.2010 13:55