Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2014, 19:13
Новичок на форуме
Отправить личное сообщение для dannogo Посмотреть профиль Найти все сообщения от dannogo
 
Регистрация: 18.02.2014
Сообщений: 6

не исполнять дальнейший код пока не сработает timeout
Добрый день.

Моя задача:
Вывести на экран строку, но не моментально, а по буквам.

Хотелось бы сделать это в цикле с использованием timeout для задержки вывода каждой следующей буквы.

Есть ли в javascript возможность задерживать выполнение дальнейшего кода до срабатывания timeout?
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2014, 19:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

dannogo,
а вы без цикла представьте
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2014, 02:15
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

И вам хорошего настроения
<div id="data"></div>
    <script>
      (function () {
        var str = 'Привет форум JavaScript',
          len = str.length,
          i = 0,
          tId, runtxt = (function () {
            tId = setInterval(function () {
              data.innerHTML += str[i++];
              if (i == len) clearInterval(tId);
            }, 300);
          }());
      }());
    </script>

Последний раз редактировалось Vlasenko Fedor, 13.03.2014 в 02:39.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2014, 10:58
Новичок на форуме
Отправить личное сообщение для dannogo Посмотреть профиль Найти все сообщения от dannogo
 
Регистрация: 18.02.2014
Сообщений: 6

в моем случае setInterval не подойдет. У меня есть план Б. Просто хотел узнать, нет ли возможности задерживать код до срабатывания setTimeout.

Спасибо за ответы
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2014, 13:23
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

dannogo,
нету. только засунуть его в ф-ю и вызвать по таймауту
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2014, 18:16
Аспирант
Отправить личное сообщение для NeoN Посмотреть профиль Найти все сообщения от NeoN
 
Регистрация: 01.03.2013
Сообщений: 77

var a = 'word';

function writeWord(a){
	var i = 0;
	function d(i){
		alert(a[i]);
		i++;
		if (i<a.length) setTimeout(function(){d(i)},1000);
	}

	d(i);
}

writeWord(a);

Последний раз редактировалось NeoN, 13.03.2014 в 18:18.
Ответить с цитированием
Ответ



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

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