Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2012, 21:34
Новичок на форуме
Отправить личное сообщение для rfxsx Посмотреть профиль Найти все сообщения от rfxsx
 
Регистрация: 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>
Ответить с цитированием
  #2 (permalink)  
Старый 21.05.2012, 22:16
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

если у Вас в head этот код то вместо
DisplayRandomDiv();
нужно
window.onload=function(){DisplayRandomDiv();}
Ответить с цитированием
  #3 (permalink)  
Старый 21.05.2012, 22:43
Новичок на форуме
Отправить личное сообщение для rfxsx Посмотреть профиль Найти все сообщения от rfxsx
 
Регистрация: 21.05.2012
Сообщений: 5

Изменений не произошло... хотелось бы конечно увидить работаюший скрипт на добавление рандомных дочерних дивов(
Ответить с цитированием
  #4 (permalink)  
Старый 21.05.2012, 23:02
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 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.
Ответить с цитированием
  #5 (permalink)  
Старый 21.05.2012, 23:24
Новичок на форуме
Отправить личное сообщение для rfxsx Посмотреть профиль Найти все сообщения от rfxsx
 
Регистрация: 21.05.2012
Сообщений: 5

возможно ли вообще написать код заного так чтобы с нуля создавались эти три элемента с рандомным тектом внутри а уж к ним подключать все .Просто мне кажеться я не от того отталкиваться начал...
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2012, 06:11
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 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 кода
Ответить с цитированием
  #7 (permalink)  
Старый 22.05.2012, 11:24
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

vadim5june, почему не используете bb-теги (html, js и лучше с run) при оформлении кода (через 10 сообщений уже профессором должны стать)??
Ответить с цитированием
  #8 (permalink)  
Старый 22.05.2012, 11:30
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от bes Посмотреть сообщение
vadim5june, почему не используете bb-теги (html, js и лучше с run) при оформлении кода (через 10 сообщений уже профессором должны стать)??
иногда использую
Если есть такая рекомендация для всех всегда использовать-буду использовать всегда-напишите плиз
Вобщем удобно согласен

Последний раз редактировалось vadim5june, 22.05.2012 в 11:40.
Ответить с цитированием
  #9 (permalink)  
Старый 22.05.2012, 11:37
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Рекомендации нет, но код приятнее смотреть оформленным и лучше, чтобы была возможность сразу просмотреть его в действии.
Ответить с цитированием
  #10 (permalink)  
Старый 22.05.2012, 11:52
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 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>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
Динамический CSS средствами JS Aspiring Общие вопросы Javascript 9 10.09.2010 19:31
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
динамический фон страницы js Learx Events/DOM/Window 1 21.01.2010 18:04