Примеры скриптов Здесь мы приведем несколько простых скриптов, которое в
том или ином виде часто применяются в Web-страницах. Все они создают некоторые
визуальные эффекты. Смена картинки В данном примере наведение указателя мыши на картинку приводит к изменению изображения. Когда указатель покидает картинку, изображение приобретает первоначальный вид. Картинка на странице определяется, как известно, тэгом <IMG>. Атрибут SRC задает файл с изображением. Нам необходимо изменить значение атрибута SRC при наступлении события, связанного с указателем мыши. Когда указатель мыши попадает в область, занятую каким-либо объектом, возникает событие onMouseOver, а когда он покидает эту область, наступает событие onMouseOut. Пусть первоначально на странице находится картинка из файла labeltl.gif, а заменять ее мы хотим картинкой из файла labelt2.gif. Тогда соответствующий HTML-код будет иметь следующий вид: <HTML> В этом примере мы обращаемся к объекту через коллекцию all() всех элементов HTML-документа, указывая идентификатор id нужного элемента. Поскольку выражения, которые следует выполнить при наступлении событий, просты, мы не стали заводить для скрипта отдельный раздел, ограниченный тэгами <SCRIPT> и </SCRIPT>. Теперь рассмотрим пример, в котором изображение изменяется при щелчке кнопкой мыши на картинке. Понятно, что картинка должна реагировать на событие onСlick. В отличие от предыдущего примера нам потребуется счетчик щелчков, а лучше сказать — триггер, который при щелчке принимает одно из двух значений (0 или I). Это необходимо, чтобы знать, какое именно изображение показывать. Если значение триггера равно 0, то при щелчке оно изменяется на I и показывается картинка labelt2.gif. Если значение триггера равно I, то при щелчке оно изменяется на 0, и показывается картинка labeltl.gif. <HTML> <SCRIPT> данном примере скрипт должен быть загружен раньше тэга
<IMG>, чтобы переменная img_click
инициализировалась раньше, чем кто-нибудь щелкнет на картинке. <BUTTON onclick="changeimg()"> В следующем примере на странице располагаются три кнопки серого цвета. При наведении указателя мыши на кнопку ее цвет изменяется на желтый. Здесь мы использовали стиль, чтобы задать первоначальный цвет кнопок и «вес» шрифта. При возникновении события функция changecolor (color) изменяет один из параметров стиля, а именно цвет фона backgroundColor. Цвет, который следует установить, передается функции в качестве параметра. <HTML> В данном примере мы воспользовались объектом event, который
содержит информацию о каком-либо событии (в нашем случае — о щелчке).
Свойство srcElement этого объекта содержит
информацию об элементе страницы, с которым связано событие (в нашем случае
это какая-то кнопка). Мы хотим изменить параметр background, относящийся
не непосредственно к кнопке, а к ее стилю (style). Именно поэтому мы изменяем
значение свойства event.srcElement.style.backgroundColor. Мигание В этом примере мы создаем с помощью тэга таблицы рамку, окаймляющую текст. С помощью скрипта цвет рамки будет периодически изменяться, создавая эффект мигания. <HTML> В скрипте периодически с помощью метода setlnterval
() вызывается функция flash (), которая назначает цветрамки таблицы;
setlnterval () является методом объекта window.
Он принимает два параметра: функцию, которую следует периодически запускать,
и число, равное периоду запусков в миллисекундах. В нашем примере функция
flash () задания цвета рамки запускается через каждые 500 мс. В НТМ L-коде мы размешаем три гиперссылки на Web-странице
нашего сайта, посвященного, главным образом, учебным примерам. Напомним
его адрес: www.admiral.ru/~dunaev. Далее,
в этом же HTML-документе мы размещаем скрипт (сценарий), который выполняет
периодическую смену цветов гиперссылок. Чтобы гиперссылки постоянно изменяли свой цвет, мы используем уже известный из предыдущих примеров метод set Interval ( ) . Здесь он применяется к функции изменения цветов colorchange () . Это означает, что первым параметром метода является строка (в кавычках), содержащая вызов функции colorchange ( ) . Частота смены цветов определяется вторым числовым параметром этого метода. Напомним, что он задает период запуска функции в миллисекундах, так что значение 500 соответствует 0,5 с. Обратите внимание, что способы выбора цветов для непосещенных и уже использованных ссылок различаются. <HTML> Обратим внимание на то, что в данном
примере в гиперссылках использовались имена файлов, а не их полные URL-адреса.
Это вполне допустимо, если указанные файлы находятся в той же папке (каталоге),
что и HTML-документ, содержащий эти гиперссылки. Для надежности, а также
в общем случае, вы можете использовать более точные указания и, в частности,
универсальные адреса расположения ресурсов — URL. Если вам необходимо, чтобы картинка изменяла свой вид, то используйте анимационные GIF-файлы. Если же вы хотите, чтобы картинка перемещалась в пространстве страницы, то используйте соответствующий скрипт. Интересный результат получается при перемещении анимационного GIF-файла с помощью скрипта. Вообще говоря, это — генеральная стратегия создания анимации средствами динамического HTML. Ниже мы приводим код, который перемещает картинку из файла labelt.gif на некоторе количество пикселов по вертикали и горизонтали, если вы сделали на ней щелчок кнопкой мыши. <HTML> Здесь функция move () переопределяет
координаты картинки. Мы использовали функцию parseInt
() для преобразования строковых значений параметров стиля в числовые,
чтобы корректно выполнить арифметические операции.
<HTML> <HTML> В этом примере метод setlnterval
() находится вне определения функции move
() , поэтому он начнет выполняться сразу же после загрузки страницы
в браузер. В рассматриваемом ниже примере картинка перемещается по эллиптической траектории. Вместо картинки вы можете заставить двигаться любой другой видимый элемент страницы. Эллипс — это замкнутая кривая, овал. Частными случаями эллипса являются окружность и отрезок прямой линии. Особенность данного примера состоит в том, что функция, обеспечивающая движение элемента по эллипсу, универсальна, т. е. не зависит от того, что именно должно двигаться по эллиптической траектории. Кроме того, мы разместили описание этой функции в отдельном текстовом файле с расширением js. Предполагается, что текстовые файлы с таким расширением содержат скрипты, написанные на языке JavaScript. В нашем примере этот файл имеет имя ellipse.js. Поскольку этот скрипт достаточно универсален, вы можете использовать его в своих разработках. Файл ellipse.js //Движение по эллипсу Параметр функции objname определяет идентификатор (значение id) элемента страницы, который должен двигаться по эллиптической траектории. Смысл остальных параметров можно понять из следующего рисунка: Координаты top и left — вертикальная и горизонтальная экранные координаты. Если а = b (большая и малая полуоси эллипса равны), то эллипс превращается в окружность. Если а = 0 или b = 0, то эллипс вырождается в отрезок. Обратите внимание, как используются математические (тригонометрические) функции. Эти функции суть методы объекта Math. Рис. 863. Параметры движения по эллиптической траектории Собственно перемещение элемента обеспечивается периодическим вызовом вспомогательной функции move (), которая вычисляет новые координаты элемента. Чтобы вызывать эту функцию периодически (с заданной временной задержкой), мы использовали метод setlnterval () объекта window. Вот HTML-код, в котором определяется перемещаемый элемент (картинка из файла labelt.gif), загружается файл ellipse.js со скриптом, описывающим функцию ellipse (), и вызывается функция ellipse (): <HTML> Особенность данного примера состоит в том, что перемещаемый объект (в нашем случае — картинка) должен быть определен прежде загрузки скрипта и вызова функции, обеспечивающей движение. |