Рандомный 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, время: 21:55. |