|
|
|
| Пытаюсь сделать обратный отчет.
нужно чтобы происходил отчет от 15 до 0
делаю так:
<div id=16></div>
<script>
var b = 0;
for(i=15; i>0; i--)
{
b = (i+1);
document.write('<div id='+i+'>'+i+'</div>');
document.getElementById(b).style.display = "none";
sleep(1);
}
</script>
|
но вместо sleep() нужно реальную функцию которая останавливала бы скрипт на 1 секудну, неподскажете?
И вообще есть ли такая функция?
Я вот знаю только как страницу перезагрузить:
<script>
window.setTimeout('location.href("test.php")',3500);
</script>
|
| |
|
|
|
|
|
|
|
для: Job
(23.06.2007 в 15:39)
| | - | |
|
|
|
|
|
|
|
для: CNT
(23.06.2007 в 16:28)
| | ? | |
|
|
|
|
|
|
|
для: Job
(23.06.2007 в 16:33)
| | вызывайте функцию через setInterval (func, 1000);
и в ней делайте то, что надо для одного шага цикла | |
|
|
|
|
|
|
|
для: bronenos
(23.06.2007 в 17:02)
| | Безрезультатно :( Делаю так:
<div id=16></div>
<script>
var i=16;
var b=0;
function sleep()
{
b=i;
i=(i-1);
document.write('<div id='+i+'>'+i+'</div>');
document.getElementById(b).style.display = "none";
}
for(f=0; f<15; f++)
{
setInterval (sleep(), 1000);
}
</script>
|
| |
|
|
|
|
|
|
|
для: Job
(23.06.2007 в 17:28)
| |
<div id='timer'>15</div>
<script>
var div = document.getElementById ('timer');
setInterval ('div.innerText--;', 1000);
</script>
|
| |
|
|
|
|
|
|
|
для: Job
(23.06.2007 в 17:28)
| | 1. Никогда не назначайте имена объектам и переменным в виде только цифр.
<div id=16> - это очень неграмотно.
Например, будете сравнивать некую переменную myVar c числом 16, а браузер посчитает, что вы сравниваете переменную myVar c объектом под идентификатором "16" и даст вам вместо ожидаемого вами "равно" неверное "не равно".
Также некорректным будет давать переменным (и объектам) имена, начинающиеся с цифр (типа "7day") - из тех же соображений: приравнивая типы переменных при сравнении, браузер, наоборот, может "откинуть" буквы "day", приведя строку к целочисленному виду и будет вместо ожидаемого вами сравнения объектов cравнивать числа.
Даже знак подчёркивания не должен быть первым (это некорректно обрабатывается Эксплорером в таблице стилей - конструкцию #_abc {color: red} в блоке <style></style> Эксплорер проигнорирует и текст объекта с id="_abc" не станет красным).
В общем, запомните навсегда: любое имя должно начинаться с буквы.
2. Метод document.write при его использовании на уже сформированном документе полностью переписывает всё содержимое документа, т.е. сначала уничтожает все объекты в документе (в том числе и самоё себя), а потом создает новый документ, записывая в него то, что прописано в скобках метода.
Т.е. если дадите браузеру команду "написать что-то, потом подождать, потом снова написать что-то... и так 16-ть раз", то браузер напишет это ваше "что-то", но только один раз - самый первый. И при этом первом написании вся остальная инструкция ("ждать и снова писать") будет уничтожена.
Усекли?
3. Таким образом, объект, в котором вы будете прописывать числа от 15 до 0, изначально должен быть на странице и ни в коем случае не должен весь переписываться методом write (и, разумеется, он должен быть с нормальным ID). С помощью вызова таймера через 1000 миллисекунд вы просто меняете innerHTML этого существующего объекта от 15 до 0. Когда innerHTML станет равным нулю, дадите команду этому объекту - "исчезни!"
<div id="myDiv">15</div>
<script>
function myFunc ()
{
with (document.getElementById ('myDiv'))
if (myCount != 0) {innerHTML = --myCount; myTimer = window.setTimeout (myFunc, 1000)}
else {style.display = 'none'; window.clearTimeout (myTimer)}
}
var myCount = 15, myTimer = window.setTimeout (myFunc, 1000);
</script>
|
| |
|
|
|
|
|
|
|
для: CNT
(23.06.2007 в 19:59)
| | Большое всем спасибо, особенно CNT, здорово просветили вы меня сегодя в JS :)
В своё опрадание могу сказать, это первое что я делаю на JS...
Но обязательно, при дальнейших разработках все выше сказанное буду иметь ввиду.
СПАСИБО!
:) | |
|
|
|
|
|
|
|
для: Job
(24.06.2007 в 10:29)
| | вот черт, забыл у себя поставить инструкцию чтоб остановился на 0 :) | |
|
|
|
|
|
|
|
для: bronenos
(24.06.2007 в 11:24)
| | Я сам сделал, спасибо ещё раз :) Вот есть же добрые люди :)
Вот кто бы с AJAX ещё помог..... чат нужен... подробности
http://softtime.ru/forum/read.php?id_forum=1&id_theme=39385 | |
|
|
|