Непрофессиональное введение в JAVASCRIPT



             

Прокрутчик - часть 2


// call this function again after 100 milliseconds setTimeout("scroll()", 100); }

// --> </script> </head>

<body onLoad="scroll()"> Your HTML-page goes here. </body> </html>

Основная часть функции scroll() необходима для вычисления, какая часть текста отображается. Я не объясняю код подробно - Вы только должны понять, как этот прокрутчик работает вообще.

Чтобы запустить прокрутчик, мы используем обработчик события onLoad тега <body>. Это означает, что функция scroll() будет вызываться сразу после загрузки HTML-страницы.

Мы вызываем функцию scroll() с помощью свойства onLoad. Первый шаг прокрутчика - вычисление и отображение. В конце функции scroll() мы устанавливаем время ожидания (таймаут). Это заставляет функцию scroll() выполняться снова после 100 миллисекунд. Текст перемещается на один шаг вперед и устанавливается другое время ожидания. Это продолжается бесконечно.

(Имелись некоторые проблемы с этим видом прокрутчика в Netscape Navigator 2.x. . Это иногда вызывало ошибку 'Out of memory'. Я получил много писем, объясняющие это как рекурсивное обращение к функции scroll() - в заключение ведущие к переполнению памяти. Но это не правда. Это не рекурсивное обращение к функции! Мы получаем рекурсию, если мы вызываем функцию scroll()непосредственно из функции scroll(). Но это не то, что мы делаем здесь. Старая функция, которая устанавливает время ожидания, заканчивается прежде, чем новая функция выполняется. Проблема состояла в том, что строки действительно не могли быть изменены в JavaScript. Если Вы пробовали делать это, JavaScript просто создал новый объект - без того, чтобы удалить старый. Это и заполняло память.)

Прокрутчики широко используются в Internet. Есть риск, что они быстро станут непопулярными. Я должен признать, что мне они не слишком нравятся. Особенно раздражает на большинстве страниц то, что URL больше не может отображаться при перемещении указателя поверх ссылки. Это может решиться через остановку прокрутчика, когда событие MouseOver происходит - Вы можете запустить его снова с onMouseOut. Если Вам нужен прокрутчик, постарайтесь не использовать стандартый прокрутчик - попробуйте добавлять какой-нибудь изящный эффект. Например, одна часть текста перемещается слева а другая часть исходит справа - когда они встречаются в середине, текст останавливается на несколько секунд. С некоторой долей фантазии Вы можете найти хорошие варианты (некоторые примеры есть в моей книге).

[предыдущая] [содержание] [следущая]

©1996,1997 by Stefan Koch

e-mail:skoch@rumms.uni-mannheim.de

http://rummelplatz.uni-mannheim.de/~skoch/

My JavaScript-book




Содержание  Назад