Скрипт - печаталка
Пока был на Кипре, выдалась пара свободных минут и родился простенький но занимательный скрипт - печаталка сообщений. Буквы печатает с рэндомными интервалами времени, распознаёт бб-код переноса строки, можно было конечно научить его распознавать html теги, но времени не хватило, а сейчас лень.. Сама функция представляет из себя готовый обработчик, который запускается, ну например по онклику на кнопку именнованой функцией с парамерами, вот так:Вначале указывается id элемента, в который печатается текст, затем указывается сам текст, потом максимальная скорость появления букв, затем указывается булевный параметр - выводить ли мигающий курсор или нет (true / false). Вобщем может вам будет интересно. Вот сам код скрипта:А вот пример его работы:
Code
typeit('mydiv','Какое либо предложение без html тегов',300,true)
Code
<script>
function typeit(id,word,time,bl){
var i = 0;
var dest = document.getElementById(id);
type();
if(bl){blink();}
function type(){
var lett = word.charAt(i);
if(lett == '[' && word.charAt(i+1)=='b' && word.charAt(i+2)=='r' && word.charAt(i+3)==']'){lett = '</br>';
i=i+3}
var cont = dest.innerHTML;
var e = '';
if(cont.indexOf('|')>=0){cont = cont.replace(/[|]/,''); e = '|';}
dest.innerHTML = cont + lett + e;
i = ++i;
speed = time + parseInt(time/100*(Math.random()*100));
setTimeout(type,speed);
};
var p = 1;
function blink(){
var e;
var cont = dest.innerHTML;
var cont = cont.replace(/[|]/,'')
if(p == 1){e = '|'; p = 0;}else{e = ''; p = 1;}
dest.innerHTML = cont + e;
setTimeout(blink,200);
};
};
</script>
function typeit(id,word,time,bl){
var i = 0;
var dest = document.getElementById(id);
type();
if(bl){blink();}
function type(){
var lett = word.charAt(i);
if(lett == '[' && word.charAt(i+1)=='b' && word.charAt(i+2)=='r' && word.charAt(i+3)==']'){lett = '</br>';
i=i+3}
var cont = dest.innerHTML;
var e = '';
if(cont.indexOf('|')>=0){cont = cont.replace(/[|]/,''); e = '|';}
dest.innerHTML = cont + lett + e;
i = ++i;
speed = time + parseInt(time/100*(Math.random()*100));
setTimeout(type,speed);
};
var p = 1;
function blink(){
var e;
var cont = dest.innerHTML;
var cont = cont.replace(/[|]/,'')
if(p == 1){e = '|'; p = 0;}else{e = ''; p = 1;}
dest.innerHTML = cont + e;
setTimeout(blink,200);
};
};
</script>
21, 1, 3316
№1
Aleko
[sayto]Scriptin[/sayto], дааа) тоже много чем на парах баловался)