Тема: Скріпт дає ефект друкарської машинки
Евріка! Знайшов!
Знайшов скріпт, якай дає ефект друкарської машинки.
Але він має недоліки.
Рядки друкуються в одному місті. Тобто один рядок стирає попередній.
Як цьому запобігти??
Потрібно, щоб весь куплет надрукувався.
!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>masch1</title>
<script type="text/javascript">
var mess=new Array(
"Что так сердце, что так сердце растревожено?",
"Словно ветром тронуло струну… ",
"В Украине много партий создано, ",
"Я создам тебе, создам ещё одну. ");
var size=32;
var textcolor="gold";
var lastcolor="red";
var pause=1500;//время задержки между выводом строк.
var speed=70;//время задержки между появлением символов;
var i=i_str=0;
var msg=msgpre=msgafter="";
function get_text() {
msgpre=mess[i].substring(0,i_str-1);//возвращает подстроку, начиная с позиции indexA
msgafter=mess[i].substring(i_str-1,i_str);//до, но не включая indexB.
msg="<span style='position:relative;color:"+textcolor+";font-size:"+size+"px;'>";
msg+=msgpre+"<font color='"+lastcolor+"'>"+msgafter+"</font></span>";
}
function go() {
if (i_str<=mess[i].length-1) {
i_str++;
get_text();
if (document.all) {typewriter.innerHTML=msg;}
else if (document.layers) {
document.typewriter.document.write(msg);
document.typewriter.document.close();
}
else {document.getElementById("typewriter").innerHTML=msg;}
var timer=setTimeout("go()", speed);
}
else {
clearTimeout(timer);
var timer=setTimeout("changemess()", pause);
}
}
function changemess() {
i++;
i_str=0;
if (i>mess.length-1) {i=0;}
go();
}
</script>
</head>
<body>
<h1>maschinka1</h1>
<p id="typewriter"></p>
<script type="text/javascript">
go();
</script>
</body>
</html>