Показать сообщение отдельно
  #5 (permalink)  
Старый 06.03.2011, 17:25
Интересующийся
Отправить личное сообщение для Detex Посмотреть профиль Найти все сообщения от Detex
 
Регистрация: 01.03.2011
Сообщений: 14

text = '<a>';
text += 'bla bla bla';
el.innerHTML=text+'</a>';


Так не подходит. Мне нужно сделать так, чтобы строка появлялась постепенно, символ за символом, как буд-то печатает печатная машинка.
С простым текстом (без HTML тегов) всё отлично, но с текстом содержащим теги получается дёрганье, т.е. сначала прописывается < а затем исчезает. Вот код:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JS</title>
<script language="JavaScript">
var htmlarchive,htmlout='',i=0,starttime;
function one()
{
	htmlarchive = document.getElementById('test').innerHTML;
	document.getElementById('test').innerHTML="";
	starttime = setInterval(echo,10);
}
function echo()
{
	i+=1;
	htmlout += htmlarchive.substring(i-1,i);
	document.getElementById('test').innerHTML = htmlout;
}	
</script>
</head>
<body onload="one()">
<div id="test">«На наш взгляд, <a href=''>иностранные военные</a> присутствия в Афганистане могут и должны предпринять более активные усилия в борьбе с наркопроизводством в этой стране, раз уж они практически взяли на себя ответственность за вопросы безопасности в Афганистане», - сказано в сообщении.</div>
</body>
</html>


Можно конечно шаг увеличить и тогда этого дёрганья не будет видно, но всё таки хотелось решить проблему.
Есть какие-нибудь идеи?

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