Техника Web-дизайна для студента
Вывод в строку состояния браузера бегущего текста
Для создания эффекта движения строки применяется искусственный прием, смысл которого заключается в следующем. Текст выводится в строку состояния многократно и перед каждым выводом смещается на один символ влево. Для работы с текстовыми строками будут использоваться свойство length и метод substr() объекта String.
Текст документа приведен в листинге 8.26.
Листинг 8.26. Пример создания бегущей строки в строке состояния браузера
<html>
<head>
<title>CTpOKa cocTOHHMH</title>
<script>
Str_p=" "
Str="flo6po пожаловать на наш сайт!!!"
St=str_p+str
L_str_p=str_p. length
Pos=0
Function bstr()
{pos++
Window. status=st. substr(pos) if (pos!=L_str_p)
{setTimeout("bstr()", 100)}}
</script>
</head>
<body onLoad=bstr()>
<p align="center"xfont size=5>3ar0n0B0K</fontx/p>
</body>
</html>
Переменной str___ p присваивается значение символьной строки,
Содержащей 60 символов пробела. Визуально это можно определить только по положению закрывающих кавычек. Переменной st г присваивается значение выводимого в строку состояния текста. Переменная st — результат суммирования строк str_p и str, именно она и будет выводиться в строку состояния. Отсюда
Понятно, что число символов пробела в строке stг______ р выбирается
С таким расчетом, чтобы при первом выводе строка состояния казалась пустой.
Далее с помощью свойства length определяется длина строки
St г__ р и присваивается переменной L_str_p. Следует обратить
Внимание на то, что ее длина в данном случае известна и, как было сказано выше, равна 60 символам. Однако если из каких - то соображений ее длину нужно будет изменить, то это достаточно будет сделать только в одном месте, а значение переменной ь_з1;г_р всегда будет равно ее фактической длине.
Переменная роэ играет роль счетчика числа вызовов функции Ьэ1;г() и одновременно определяет номер позиции, с которой ИЗ строки st метод зиЬз1;г() вырезает подстроку, выводимую в строку состояния. Переменная роэ с каждым шагом увеличивается на единицу, число пробелов в вырезаемой подстроке убывает на единицу, а текст при этом смещается на один символ влево.
Многократный вызов функции Ьэ'ЬгО осуществляется методом зе'МЧтео'иЛ () через каждые 100 мс. Это продолжается до тех пор, пока переменная роэ не достигнет значения равного числу удаляемых пробелов, после чего вызов функции () прекращается.