![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.05.2012, 21:34
|
Новичок на форуме
|
|
Регистрация: 21.05.2012
Сообщений: 5
|
|
Динамический JS: createElement и appendChild
смысл в том чтобы на странице генерировались случайным каждый раз образом дивы, то есть допустим первый раз запускаешь в окне появляется 3 дива, в первом еще какое то количество, во втором еще какое-то тоже случайное, в третьем так же, во внутренних дивах появляются каждый раз случайным образом еще какое то количество дивов, так до тех пор пока они не станут меньше какого то размера, допустим 20 пикселей
и в каждом диве генерируеться случайное число
скрипт для генерации трех первых дивов написал а appenchild подключаться не хочет
<script type="text/javascript">
NumberOfDivsToRandomDisplay = 6;
var CookieName = 'DivRamdomValueCookie';
function DisplayRandomDiv() {
var r = Math.ceil(Math.random() * NumberOfDivsToRandomDisplay);
var v = r+1;
var w = v++;
if(NumberOfDivsToRandomDisplay > 1) {
var ck = 0;
var cookiebegin = document.cookie.indexOf(CookieName + "=");
if(cookiebegin > -1) {
cookiebegin += 1 + CookieName.length;
cookieend = document.cookie.indexOf(";",cookiebegin);
if(cookieend < cookiebegin) { cookieend = document.cookie.length; }
ck = parseInt(document.cookie.substring(cookiebegin,coo kieend));
}
while(r == ck) { r = Math.ceil(Math.random() * NumberOfDivsToRandomDisplay); }
document.cookie = CookieName + "=" + r;
}
for( var i=1; i<=NumberOfDivsToRandomDisplay; i++) {
document.getElementById("randomdiv"+i).style.displ ay='none';
}
var list = document.getElementById("randomdiv"+r).style.displ ay='block';
document.getElementById("randomdiv"+v).style.displ ay='block';
document.getElementById("randomdiv"+w).style.displ ay='block';
var fiv = document.createElement('div');
fiv.innerHTML = '1';
list.appendChild(fiv).style.display='block';
}
DisplayRandomDiv();
</script>
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.05.2012, 22:16
|
![Аватар для vadim5june](https://javascript.ru/forum/image.php?u=20687&dateline=1343469968) |
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
если у Вас в head этот код то вместо
DisplayRandomDiv();
нужно
window.onload=function(){DisplayRandomDiv();}
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.05.2012, 22:43
|
Новичок на форуме
|
|
Регистрация: 21.05.2012
Сообщений: 5
|
|
Изменений не произошло... хотелось бы конечно увидить работаюший скрипт на добавление рандомных дочерних дивов(
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.05.2012, 23:02
|
![Аватар для vadim5june](https://javascript.ru/forum/image.php?u=20687&dateline=1343469968) |
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
само добавление достаточно просто и у Вас правильно написано-а с логикой и кукисами я не разбирался
window.onload=function(){
var d1=document.getElementById('tt');
var d=document.createElement('div');
d.innerHTML='1';
var d2=d1.appendChild(d);}
<body>
<div id=tt style='border:1px solid black;'>add me</div>
Последний раз редактировалось vadim5june, 22.05.2012 в 11:42.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
21.05.2012, 23:24
|
Новичок на форуме
|
|
Регистрация: 21.05.2012
Сообщений: 5
|
|
возможно ли вообще написать код заного так чтобы с нуля создавались эти три элемента с рандомным тектом внутри а уж к ним подключать все .Просто мне кажеться я не от того отталкиваться начал...
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
22.05.2012, 06:11
|
![Аватар для vadim5june](https://javascript.ru/forum/image.php?u=20687&dateline=1343469968) |
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
Сообщение от rfxsx
|
возможно ли вообще написать код заного так чтобы с нуля создавались эти три элемента с рандомным тектом внутри а уж к ним подключать все .Просто мне кажеться я не от того отталкиваться начал...
|
примерно вот так-только сделайте с position:absolute чтобы по экрану случайным образом разбрасывались
---------------------------------------
var cl=['red','green','blue','white'];
window.onload=function(){fr(200,document.body,0); return;
}
function fr(w,p,u){var n=2+parseInt(5*Math.random());
for(var i=0;i<n;i++){
var d=document.createElement('div');
d.innerHTML='1';
d.style.width=w+'px';
d.style.height=w+'px';
d.style.background=cl[u];
d.style.overflow='hidden';
p.appendChild(d);
var br=document.createElement('br');
p.appendChild(br);
var n1=parseInt(w/2);if(n1>10)fr(n1,d,u+1)
};
};
Последний раз редактировалось vadim5june, 22.05.2012 в 11:37.
Причина: использование bb кода
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
22.05.2012, 11:24
|
![Аватар для bes](https://javascript.ru/forum/image.php?u=19820&dateline=1334914235) |
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
vadim5june, почему не используете bb-теги (html, js и лучше с run) при оформлении кода (через 10 сообщений уже профессором должны стать)??
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
22.05.2012, 11:30
|
![Аватар для vadim5june](https://javascript.ru/forum/image.php?u=20687&dateline=1343469968) |
Студент
|
|
Регистрация: 30.04.2012
Сообщений: 1,113
|
|
Сообщение от bes
|
vadim5june, почему не используете bb-теги (html, js и лучше с run) при оформлении кода (через 10 сообщений уже профессором должны стать)??
|
иногда использую
Если есть такая рекомендация для всех всегда использовать-буду использовать всегда-напишите плиз
Вобщем удобно согласен
Последний раз редактировалось vadim5june, 22.05.2012 в 11:40.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
22.05.2012, 11:37
|
![Аватар для bes](https://javascript.ru/forum/image.php?u=19820&dateline=1334914235) |
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Рекомендации нет, но код приятнее смотреть оформленным и лучше, чтобы была возможность сразу просмотреть его в действии.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
22.05.2012, 11:52
|
![Аватар для bes](https://javascript.ru/forum/image.php?u=19820&dateline=1334914235) |
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Вот ваш более менее оформленный код.
<script>
var cl = ['red', 'green', 'blue', 'white'];
function fr(w, p, u) {
var n = 2 + parseInt(5*Math.random());
for (var i = 0; i < n; i++) {
var d = document.createElement('div');
d.innerHTML = '1';
d.style.width = w + 'px';
d.style.height = w + 'px';
d.style.background = cl[u];
d.style.overflow = 'hidden';
p.appendChild(d);
var br = document.createElement('br');
p.appendChild(br);
var n1 = parseInt(w/2);
if (n1 > 10) fr(n1, d, u+1);
}
}
window.onload = function() {
fr(200, document.body, 0);
return;
}
</script>
|
|
|
|