Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2010, 20:23
Новичок на форуме
Отправить личное сообщение для JSBeginner Посмотреть профиль Найти все сообщения от JSBeginner
 
Регистрация: 19.10.2010
Сообщений: 8

Пауза выполнения кода на JS как Thread.sleep
Привет всем

Захотелось написать маленькое меню на JavaScript, но возникла проблема с div-ами, а точнее их заполнением. Я никак не пойму как сделать на JS так, чтобы div объект заполнялся построчно с паузой в 0,2 секунды например... Пробовал setInterval() итп , помещать в линейный код цикла, но не получается никакого эффекта
Начал подумывать уже переложить это на сервер выполнение через Java, но не хочется как-то дизайнерский элемент перекладывать на Tomcat, так как такую задачу хорошо решать на клиенте...
Помогите плз как внедрить паузу в код на JS, чтобы точно работало
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2010, 20:41
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Ну почитайте про анимацию.
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2010, 20:45
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

setInterval/setTimeout запускают код через какое-то время, но не приостанавливают работу скрипта.
Советую проникнуться документацией, благо, её достаточно.
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2010, 21:07
Новичок на форуме
Отправить личное сообщение для JSBeginner Посмотреть профиль Найти все сообщения от JSBeginner
 
Регистрация: 19.10.2010
Сообщений: 8

Сообщение от subzey Посмотреть сообщение
setInterval/setTimeout запускают код через какое-то время, но не приостанавливают работу скрипта.
Советую проникнуться документацией, благо, её достаточно.
То, что остальной код к сожалению мимо выполняется - это я уже понял и меня это не радует, так как не пойму как тогда организовать линейность? Есть ли обходные вещи в таком случае?
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2010, 21:11
Новичок на форуме
Отправить личное сообщение для JSBeginner Посмотреть профиль Найти все сообщения от JSBeginner
 
Регистрация: 19.10.2010
Сообщений: 8

проблему вы правильно поняли... мне нужно остановить выполнение кода, а потом продолжить через 0,2 сек например, чтобы получить эффект выезда строк итп... Но вот то, что весь остальной код функции мимо выполняется это очень как-то не удобно для получения нужного эффекта и пока я не понял как обойти этот нюанс... помогите понять плз
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2010, 21:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://alljs.ru/articles/timeout/
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2010, 21:29
Новичок на форуме
Отправить личное сообщение для JSBeginner Посмотреть профиль Найти все сообщения от JSBeginner
 
Регистрация: 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;

}


Что я делаю не так?
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2010, 22:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Читайте тексты по ссылке, они для того и писались, чтобы каждый раз одно и то же не объяснять.
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2010, 22:06
Новичок на форуме
Отправить личное сообщение для JSBeginner Посмотреть профиль Найти все сообщения от JSBeginner
 
Регистрация: 19.10.2010
Сообщений: 8

Я их уже прочитал, но не получается почему-то...
Я хочу, чтобы итерация выполнялась с паузой, но почему-то вообще ничего не выполняется?
for (index=0; index<5; index++)
{
window.setInterval('_onсlick('+name+','+index+')', 1000);
}


уже в html самом Id все верно указано... Без интервала работает, но некрасиво получается - просто появляется список и все, а интересно, чтобы он построчно выезжал...
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2010, 22:11
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Странно вы читаете.

http://alljs.ru/articles/timeout/overview.html#nosleep
Цитата:
Многие начинающие в JavaScript разработчики путают принцип работы его таймеров с принципом работы имеющейся во многих языках функции sleep. sleep приостанавливает выполнение программы на определённый промежуток времени, после чего работа продолжается с того же места, где была остановлена. В JavaScript такое невозможно, по крайней мере в браузерном JavaScript.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00
Как защитить файл js от скачивания с сервера? slon Общие вопросы Javascript 2 02.07.2008 01:14
Обращение к элементам js, как в xsl GOll Общие вопросы Javascript 1 27.06.2008 14:47
Как передавать переданные в js файлы параметры? Mattias Общие вопросы Javascript 4 26.06.2008 16:58
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 20:43