19.10.2010, 20:23
|
Новичок на форуме
|
|
Регистрация: 19.10.2010
Сообщений: 8
|
|
Пауза выполнения кода на JS как Thread.sleep
Привет всем
Захотелось написать маленькое меню на JavaScript, но возникла проблема с div-ами, а точнее их заполнением. Я никак не пойму как сделать на JS так, чтобы div объект заполнялся построчно с паузой в 0,2 секунды например... Пробовал setInterval() итп , помещать в линейный код цикла, но не получается никакого эффекта
Начал подумывать уже переложить это на сервер выполнение через Java, но не хочется как-то дизайнерский элемент перекладывать на Tomcat, так как такую задачу хорошо решать на клиенте...
Помогите плз как внедрить паузу в код на JS, чтобы точно работало
|
|
19.10.2010, 20:41
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Ну почитайте про анимацию.
|
|
19.10.2010, 20:45
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
setInterval/setTimeout запускают код через какое-то время, но не приостанавливают работу скрипта.
Советую проникнуться документацией, благо, её достаточно.
|
|
19.10.2010, 21:07
|
Новичок на форуме
|
|
Регистрация: 19.10.2010
Сообщений: 8
|
|
Сообщение от subzey
|
setInterval/setTimeout запускают код через какое-то время, но не приостанавливают работу скрипта.
Советую проникнуться документацией, благо, её достаточно.
|
То, что остальной код к сожалению мимо выполняется - это я уже понял и меня это не радует, так как не пойму как тогда организовать линейность? Есть ли обходные вещи в таком случае?
|
|
19.10.2010, 21:11
|
Новичок на форуме
|
|
Регистрация: 19.10.2010
Сообщений: 8
|
|
проблему вы правильно поняли... мне нужно остановить выполнение кода, а потом продолжить через 0,2 сек например, чтобы получить эффект выезда строк итп... Но вот то, что весь остальной код функции мимо выполняется это очень как-то не удобно для получения нужного эффекта и пока я не понял как обойти этот нюанс... помогите понять плз
|
|
19.10.2010, 21:14
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
|
19.10.2010, 21:29
|
Новичок на форуме
|
|
Регистрация: 19.10.2010
Сообщений: 8
|
|
Я вроде понимаю, но почему-то не получается
function driveOut(name)
{
for (index=0; index<5; index++)
{
window.setInterval('_onсlick('+name+','+index+')', 1000);
}
text="";
}
var n;
var text="";
var a=new Array();
function _onclick(name, index)
{
a[0]="<p style='margin-left: 10px;'>A</p>";
a[1]="<p style='margin-left: 10px;'>B</p> ";
a[2]="<p style='margin-left: 10px;'>C</p> ";
a[3]=" <p style='margin-left: 10px;'>D</p>";
a[4]="<p style='margin-left: 10px;'>E‹</p>";
if(n!=null){document.getElementById(n).innerHTML="";}
if(name!=n){
text=text+a[index];
document.getElementById(name).innerHTML=text;
}//end if
n=name;
}
Что я делаю не так?
|
|
19.10.2010, 22:00
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Читайте тексты по ссылке, они для того и писались, чтобы каждый раз одно и то же не объяснять.
|
|
19.10.2010, 22:06
|
Новичок на форуме
|
|
Регистрация: 19.10.2010
Сообщений: 8
|
|
Я их уже прочитал, но не получается почему-то...
Я хочу, чтобы итерация выполнялась с паузой, но почему-то вообще ничего не выполняется?
for (index=0; index<5; index++)
{
window.setInterval('_onсlick('+name+','+index+')', 1000);
}
уже в html самом Id все верно указано... Без интервала работает, но некрасиво получается - просто появляется список и все, а интересно, чтобы он построчно выезжал...
|
|
19.10.2010, 22:11
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Странно вы читаете.
http://alljs.ru/articles/timeout/overview.html#nosleep
Цитата:
|
Многие начинающие в JavaScript разработчики путают принцип работы его таймеров с принципом работы имеющейся во многих языках функции sleep. sleep приостанавливает выполнение программы на определённый промежуток времени, после чего работа продолжается с того же места, где была остановлена. В JavaScript такое невозможно, по крайней мере в браузерном JavaScript.
|
|
|
|
|