Введение в JavaScript для Мага
Добавить в закладки К обложке
- Часть 1: Первые шаги - Страница 1
- Часть 2: Документ HTML - Страница 5
- Часть 3: Фреймы - Страница 8
- Часть 4: Окна и динамически создаваемые документы - Страница 11
- Часть 5: Строка состояния и таймеры - Страница 15
- Часть 6: Предопределенные объекты - Страница 18
- Часть 7: Формы (Forms) - Страница 21
- Часть 8: Объект Image - Страница 24
- Часть 9: Слои I - Страница 27
- Часть 10: Слои II - Страница 30
- Part 11: Модель событий в JavaScript 1.2 - Страница 33
- Часть 12: Drag & Drop - Страница 36
Сам скрипт выглядит следующим образом:
<html>
<head>
<script language="JavaScript">
<!- hide
function move() {
if (pos < 0) direction= true;
if (pos > 200) direction= false;
if (direction) pos++
else pos-;
document.layers["myLayer2"].left= pos;
}
// — >
</script>
</head>
<body onLoad="setInterval('move(), 20)">
<ilayer name=myLayer2 left=0>
<font size=+1 color="#0000ff"><i>This text is inside a layer</i></font>
</ilayer>
</body>
</html>
Мы создаем слой с именем myLayer2. Можно видеть, что в тэге <body>мы пользуемся процедурой onLoad. Нам необходимо начать прокручивание слоя, как только страница будет загружена. В процедуре обработки события onLoad мы пользуемся функцией setInterval(). Это один из новых методов версии 1.2 языка JavaScript (то есть версии JavaScript, реализованной в Netscape Navigator 4.0). Им можно пользоваться, чтобы вызывать некую функцию мвновь и вновь через определенные интервалы времени. В прошлом для этого мы пользовались функцией setTimeout(). Функция setInterval() работает почти так же, однако Вам нужно вызвать ее всего лишь один раз.
С помощью setInterval() мы вызываем функцию move() каждые 20 миллисекунд. А функция move(), в свою очередь, всякий раз смещает слой на новую позицию. И поскольку мы вызываем эту функцию вновь и вновь, то мы получаем быстрый скроллинг нашего текста. Все, что мы нужно сделать в функции move() — это вычислить новую координату для слоя и записать ее: document.layers["myLayer2"].left= pos.
Если Вы посмотрите исходный код этой части в онлайновом описании, то увидите, что в действительности мой код выглядит несколько иначе — я добавил некий фрагмент кода с тем, чтобы люди, работающие со старыми версиями JavaScript-браузеров, не получали из-за этого никаких сообщений об ошибках. Как этого можно достичь? Следующий фрагмент кода будет выполняться только на тех браузерах, которые воспринимают язык JavaScript 1.2:
<script language="JavaScript1.2">
<!- hide
document.write("Вы используете браузер, совместимый с JavaScript 1.2.");
// — >
</script>
Та же самая проблема возникает, когда мы работаем с объектом Image. Мы можем аналогичным способом переписать кодекс. Установка переменной browserOK решает эту проблему.
Следующий пример демонстрирует, как может осуществляться перекрывание слоев:
Текст внутри слоя