Web-анатомия Web-анатомия Web-анатомия
Web-анатомия Web-анатомия Web-анатомия HTML CSS JScript DHTML
заголовок - CSS
вступление


Новая версия сайта находится по адресу


wa.artel.by




Материал взят с сайта http://www.projectcool.com/ с нарушением всех авторских прав. Перевод by FireFalcon

Старая добрая пишущая машинка еще пылится у некоторых писателей, перешедших на компьютеры. Однако ностальгия мучает. Вот и воспроизведем эффеект пишущей машинки на каком-нить сайте. Вдруг пригодится. Да, чуть не забыл... К сожалению эта штука в Netscape не работает :(

Вот это оно и печатает.

Скорость выведения букв может быть любой. В этом примере новый символ печатается каждые 100 миллисекунд.

Эффект пишущей машинки встраивается в код через XML. Это для того, чтобы старые браузеры его игнорировали. Пространство имен устанавливается в <html> тэге. Допустим так:

<html xmlns:fx>

Следующий шаг определяет используемый XML тэг. Это делается для специфической media. В этом случае это screen, поэтому надо задать его CSS свойства и ассоциировать их с пространством имен, задав префиксы пространства имен в объявлении (гм, что-то больно непонятно получилось, на примере понятнее). Объявление выглядит где-то так:

<style>
<!--
@media screen{
 fx\:TYPEWRITER { behavior:url(typewriter.htc);
	font-family: courier;
	font-weight: bold;
	color: #ff0000; }
}
-->
</style>

Самая важная часть этого всего - behavior-свойство. Только эта часть действительно нужна, и в url должен стоять путь к behavior-файлу typewriter.htc. Взять typewriter.htc файл можно здесь.

Когда все это сделано, разместите XML таг по обе стороны текста, который должен выводиться с эффектом печатающей машинки. Вот так:

<fx:TYPEWRITER speed="120">
Вот это оно и печатает.
</fx:TYPEWRITER>

Заметьте, что здесь скорость равна 120. Если вы не укажете скорость, то текст будет выводиться с дефолтовой, которая равно 100.

А вот и скрипт

<EVENT id=typewriter name=typewriter />
<ATTACH event=onload for=window handler=startTyping />
<method name=typeIt />
<property name=speed />

<script language="javascript">
// глобальные переменные
var counter=0;
var buffer1;
var buffer2;
var bufLength;
var typing;
if (!speed) {var speed=100}

// Установка буффера печати и инициализация печати.
function startTyping(){
buffer1 = element.innerText;
element.innerText="";
buffer2 = "";
bufLength = buffer1.length;
typing = window.setInterval(uniqueID+".typeIt()",speed);
}

// Печатем добавляя по одному символу к innerText каждый
// раз при новом интервале.
function typeIt(){
buffer2 = buffer2 + buffer1.substring(counter,counter+1);
element.innerText = buffer2;
counter = counter + 1;
if (counter == bufLength){clearInterval(typing)}
}
</script>

Ну я думаю здесь никаких вопросов не возникает. Если что-то непонятно, пишите
заголовок - CSS

Новости сайта Ссылки/только полезные ресурсы не нажимать! Пишите письма
новости

3 мая 2001. Новенькое по CSS/ Кросс-браузерность:
фишки слепого браузера


18 апреля 2001. Новенькое по CSS/ Кросс-браузерность:
не наступай на грабли


11 апреля 2001. Новый материал по HTML/ Логические тэги:
облегчаем жизнь


30 марта 2001. Ну наконец-то! Новый материал по HTML/ Favicon:
плюсы и минусы


21 марта 2001. Новый материал по CSS/ секреты CSS:
правильные стили (IV)


15 марта 2001. Новый материал по CSS/ секреты CSS:
правильные стили (III)


DHTML
...и тому, кто будет кричать, что Netscape 4 лучше MSIE 5, я готов сломать обе руки и ребро впридачу, потому что н е т для веб-разработчика ничего более мерзкого, чем писать динамические сайты под Netscape...

Как задавать
слои кросс-браузерно


Эффект
пишущей машинки

 

Hosted by uCoz