Просмотр полной версии : Свободное позиционирование посредством JS
В сценарии создается некая строка. Как можно именно с помощью JS свободно позиционировать данную строку?
Хм.. ну вот, например:
var num = Math.random();
Нужно разместить эту переменную на странице в заданных координатах, например 200px слева и 300px сверху. И как это сделать?
Необходимо, чтобы все делалось только средствами JS.
var num=Math.random();
document.write("<div style=\"position:absolute; left:200; top:100;\">");
document.write(num);
document.write("</div>");
Спасибо, но у меня появился еще один вопрос.
num = Math.round( Math.random() * 9 );
for(i = 220; i < 222; i+=20){
document.write("<div id = 'div + i ' style='position: absolute; left: i; top: i'>");
document.write(num);
document.write("</div>");
}
Хм. В общем не получается затея, чтобы в цикле создавались новые блоки с разными значениями атрибута id и различными координатами. В чем ошибка?
В не читании документации :)
document.write("<div id = 'div' + i + ' style='position: absolute; left:'+ i+'; top: '+i+'>");
Приношу извинения за свою некомпетентность и недоходчивость, но возникла вновь пара вопросов по этому коду:
document.write("<div id = 'div' + i + ' style='position: absolute; left:'+ i+'; top: '+i+'>");
I. Почему необходимо 'обрамлять' переменную i в 'плюсики'?
II. С определением значения атрибута id что-то не то, по-моему. Вот, например, попытался проверить так:
alert(document.getElementById('div' + i + ').id);
Но, конечно же, выявились опять-таки непонятные мне ошибки.
Мдя... Итак, я там сам набажил хорошо :))
document.write("<div id = 'div" + i + "' style='position: absolute; left:"+ i+"; top: "+i+">");
Обрати внимание, после div+i - двойная кавычка, а за ней - одинарная.
А по пункту II - ты сам прочитай, что написал -
достать элемент с Id = div[значение i]).id);
и незавершенная строка.
Итого - все кавычки должны быть парными.
KidsKilla
20.02.2006, 19:12
document.write("<div id = 'div' + i + ' style='position: absolute; left:'+ i+'; top: '+i+'>");[/code]
I. Почему необходимо 'обрамлять' переменную i в 'плюсики'?
если ны не "обрамишь в плюсики" то в строке
"строка строка строка i продолжение строки" i воспримется как строка "i" а тебе нужна переменная i:
" строка строка строка "+i+" продолжение строки"
II. С определением значения атрибута id что-то не то, по-моему. Вот, например, попытался проверить так:
alert(document.getElementById('div' + i + ').id);
Но, конечно же, выявились опять-таки непонятные мне ошибки.
document.getElementById('div' + i).getAttribute("id");
В продолжении выполнения моей работы вышла следующая неполадка.
Вообще, мне необходимо, чтобы вновь созданные 'дивы' отображались один за другим через определенный промежуток времени, например, через 500 мсек. Но...
<html>
<head>
<script>
var ar2 = new Array("1", "2", "3", "4", "5", "6", "7", "8" );
var i = 1, k = 1;
var int;
setTimeout('clearInterval(int)', 9500);
function bedlam(){
for(j = 1; j < 20; j++){
num3 = ar2[ Math.round( Math.random() * (ar2.length - 1) ) ];
document.write('<DIV ID = "div'+i+'" STYLE = "position: absolute; top: 0; left: 0; visibility: hidden; z-index: '+i+'; ">');
document.write(num3);
document.write('</DIV>');
t = Math.round( Math.random() * (document.body.clientHeight - 20) );
l = Math.round( Math.random() * (document.body.clientWidth - 15) );
document.getElementById('div' + i).style.top = t;
document.getElementById('div' + i).style.left = l;
i++;
}
}
function setVisible(){
document.getElementById('div' + k).style.visibility = 'visible';
k++;
}
</script>
</head>
<body onload = "bedlam(); int = setInterval('setVisible()', 500)">
</body>
... выходит какая-то ошибка.
Машина не едет, че делать ?
"каких-то" ошибок не бывает :)
А вообще, особо не читая твое творение - int - reserved word, называй переменные как-нить еще :)
Все равно, 'машина не едет'
Может, научишься ошибки сам читать ?
Та ошибка, которую выдает IE ни о чем не говорит.
Предполагается наличие объекта в строке 1А строка 1 - это <html>.
Вот я и на пойму, в чем ошибка.
Во-первых, ослик как средство отладки не есть хороший инструмент. Лиса с соответствующим модулем куда-как информативнее.
Во-вторых, строка 1 - это первая строка скрипта, а не HTML-документа.
Увы, но вашего жаргона я не знаю и не понимаю, какой броузер ты имеешь в виду под названием Лиса. К тому же, у меня все равно в системе только IE установлен.
Если только IE - учить по его сообщениям определять ошибку. И исправлять.
Я же обратился за помощью только из-за того, что испрбовал и проверил все, что мог. Ничего не вышло. Как следствие - мое сообщение с запросом некой помощи.
P.S. Скажи, что ты подразумеваешь под Лисой, попытаюсь тогда поискать сей броузер.
Лиса = FireFox
http://www.mozilla.org/products/firefox/central.html
В Mozilla вообще не выдается ошибок, но и выполнение функции также не осуществляется. Может, все-таки кто-нибудь знает в чем дело?
Открой консоль JavaScript - там в FF ошибки пишутся.
Гм... пишется, что функция setVisible() не определена. Но почему?!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.