После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть? |
Изменение изображения с помощью функции
Концепция
Вот еще один пример использования onMouseOver и onMouseOut. На этот раз вместо включения оператора JavaScript для смены картинки в тег <A HREF> обработчики событий onMouseOver и onMouseOut вызывают функцию.
В общем, когда нужна только одна команда JavaScript, можно включить ее в тег HTML <A HREF>. Для нескольких операторов JavaScript больше подходит функция. В реальном мире на странице часто требуется многократное изменение изображения с помощью JavaScript.
Сценарий
<HTML> <HEAD> <title> Пример JavaScript </title> <SCRIPT type="text/javascript"> function up() { document.mypic.src="up.gif" } function down() { document.mypic.src="down.gif" } </SCRIPT> </HEAD> <BODY> <CENTER> <h2>Пример анимации</h2> <A HREF="http://www.intuit.ru" onMouseOver="up()" onMouseOut="down()"> <IMG SRC="down.gif" NAME="mypic" BORDER=0></A> </BODY> </HTML>
Результат работы сценария
Пример анимации с помощью OnMouseOver и OnMouseOut.
Если быстро двигать курсором мыши на изображении, то возникает ощущение ожившего изображения — анимации.
Разбор сценария
Не забывайте про регистр символов при записи OnMouseOver и OnMouseOut.
Обратите внимание, что в сценарии созданы две функции.
<SCRIPT type="text/javascript"> function up() { document.mypic.src="up.gif" } function down() { document.mypic.src="down.gif" }
Функции выполняют то же, что и команды в прошлом уроке. Помните иерархию объектов? Сначала документ, потом имя, присвоенное объекту, и наконец SRC. Функции названы up() и down().
Теперь посмотрим на вызов функции:
<A HREF="http://www.intuit.ru" onMouseOver="up()" onMouseOut="down()"> <IMG SRC="down.gif" NAME="mypic" BORDER=0></A>
Формат почти такой же, как и использованный в Уроке 15, но здесь вместо включения оператора в команду HREF вызывается функция.
Этот пример по-прежнему имеет один оператор JavaScript. Вспомните, что обычно функции используются для объединения нескольких операторов. Мы хотели просто сделать пример коротким.
Если вы решите использовать многократную смену картинок с помощью JavaScript, помните, что для каждого случая нужно создавать имя новой функции и соединять определенные изображения с этими функциями, изменяя также атрибут NAME. Например: вы хотите поместить на страницу еще одну такую же меняющуюся картинку. Для этого создаем две новые функции, копируя предыдущие две функции и добавляя к именам цифру 2 (обратите на это внимание в коде ниже). Затем необходимо изменить в каждом случае атрибут NAME (снова обратите внимание на код ниже), поэтому изменяем имя на mypic2. Не забудьте изменять его везде, где оно появляется. Получаем примерно следующее в разделе заголовка HEAD:
<SCRIPT LANGUAGE="JavaScript"> function up() { document.mypic.src="up.gif" } function down() { document.mypic.src="down.gif" } function up2() { document.mypic2.src="up.gif" } function down2() { document.mypic2.src="down.gif" } </SCRIPT>
... и примерно следующее для вызова двух различных изображений:
<A HREF="http://www.intuit.ru" onMouseOver="up()" onMouseOut="down()"> <IMG SRC="down.gif" NAME="mypic" BORDER=0></A>
<a href="http://www.intuit.ru" onMouseOver="up2()" onMouseOut="down2()"> <IMG SRC="down.gif" NAME="mypic2" BORDER=0></A>
Видите, как новые функции связаны с новыми именами? Делайте это каждый раз при добавлении новой меняющейся картинки. Если требуется три случая, то добавьте цифру 3 везде, где выше добавлена 2. Если четыре, добавьте 4, и т.д.
Задание
Переделайте последнее задание, использующее Bubble1.gif и Bubble2.gif. Создайте две функции для смены этих изображений.
Возможное решение
<html> <head> <SCRIPT type="text/javascript"> function swap1for2() { document.pic1.src="bubble2.gif" } function swap2for1() { document.pic1.src="bubble1.gif" } </SCRIPT> </head> <body bgcolor="white"> <center> <h1> Иван Иванович</h1> <a href="" onMouseOver="swap1for2() " onMouseOut="swap2for1()"> <img src="bubble1.gif" border=0 name="pic1"> </a> </center> </body> </html>