Рандомный id div'a
Здравствуйте.
Подскажите, пожалуйста, такую штуку. У меня менюшка генерится админкой автоматически. Мне необходимо, чтобы каждому пункту меню соответствовал свой id - рандомно. Таким образом я смогу применить к каждому из возможных id по бэкграунду через CSS, и каждая строка меню будет каждый раз со своим фоном. Скрипт с рандомным бэкграундом уже видел и пробовал. Загвоздка в том, что когда загружается страница всем пунктам меню присваивается одинаковый фон из возможных пяти. При обновлении это уже другой фон, но у всех всё равно одинаковый. Спасибо за помощь. P.S. java пока для меня тёмный лес и я совсем в ней чайник *смущённый смаел* |
Цитата:
Цитата:
|
Я бы сделал так, перебрал все менюшки и присваивал бы им случайные цвета
ПР.
for (x=0; до количества менюшек)
{
r=Math.round(Math.random()*255);
g=Math.round(Math.random()*255);
b=Math.round(Math.random()*255);
menu[x].style.backgroundColor=dec2hex(r,g,b);
}
Если не надо случайные цвета, а надо цвета которые в ccs прописаны для id, - тож самое:
var a=array(Масив id)
for (x=0; до количества менюшек)
{
menu[x].id=a[Math.round(Math.random()*на количество id)];
}
ЗЫ: Хотя я не уверен, что правильно понял вопрос |
Присваивание рандомных ID куче элементов не есть хорошо. Ищи другие пути решения.
|
Ремарка. Под Бэкграундом я имел в виду не цвет, а картинку (сорри, не уточнил).
Октан, код я не предоставил, потому что понял, что он не подходит. Моя просьба не в том, чтобы исправили код, а чтобы подсказали другой. Тот код не подходит принципиально и я понимаю причины. Но, для наглядности представлю все исходные. Сейчас после каждого обновления выглядит так: ![]() ![]() ![]() А хочется так: ![]() Коды. Админка - MODx Вызов Wayfinder'a [!Wayfinder? &rowTpl=`row`!] Чанк "row" (образец, использующийся админкой для построения каждого пункта меню) <div class="stickerss" style="width: 570px; height: 478px; background-repeat: no-repeat; background-image: url(assets/images/bgs/rotate.php); float: left;"> <a href="[+wf.link+]" title="[+wf.title+]" [+wf.attributes+]>[+wf.linktext+]</a> </div> Код rotate.php (который действует на момент валидации чанка и, таким образом, ставит одинаковую картинку ко всем элементам меню)
<?php
/*
By Matt Mullenweg > http://photomatt.net
Inspired by Dan Benjamin > http://hiveware.com/imagerotator.php
Latest version always at:
http://photomatt.net/scripts/randomimage
*/// Make this the relative path to the images, like "../img" or "random/images/".
// If the images are in the same directory, leave it blank.
$folder = '';
// Space seperated list of extensions, you probably won't have to change this.
$exts = 'jpg jpeg png gif';
$files = array(); $i = -1; // Initialize some variables
if ('' == $folder) $folder = './';
$handle = opendir($folder);
$exts = explode(' ', $exts);
while (false !== ($file = readdir($handle))) {
foreach($exts as $ext) { // for each extension check the extension
if (preg_match('/\.'.$ext.'$/i', $file, $test)) { // faster than ereg, case insensitive
$files[] = $file; // it's good
++$i;
}
}
}
closedir($handle); // We're not using it anymore
mt_srand((double)microtime()*1000000); // seed for PHP < 4.2
$rand = mt_rand(0, $i); // $i was incremented as we went along
header('Location: '.$folder.$files[$rand]); // Voila!
?>
|
Эмм многа букаф, лень разбираться. Я бы сделал как-то так:
<style type="text/css">
.sticker {
width: 90px;
height: 71px;
margin: 20px;
background: url(http://s39.radikal.ru/i083/0910/95/79560b0f4d75.jpg) no-repeat;
}
.type-0 {
}
.type-1 {
background-position: top center;
}
.type-2 {
background-position: top right;
}
</style>
<div class="sticker">JavaScript</div>
<div class="sticker">JScript</div>
<div class="sticker">ActionScript</div>
<div class="sticker">Python</div>
<div class="sticker">Ruby</div>
<div class="sticker">C#</div>
<script>
var stickers = document.getElementsByTagName("div"), i = stickers.length;
while (i--) {
if((" " + stickers[i].className + " ").indexOf(" sticker ") != -1) {
stickers[i].className += " type-" + Math.floor(Math.random() * 3);
}
}
</script>
|
Октан, СПАСИБО огромное!
Всё получилось! ))) |
| Часовой пояс GMT +3, время: 20:31. |