Devil DREAMS www.devil-dreams.clan.su
 
 ::  Регистрация  ::  Правила  ::  Помощь  ::  Анкеты  ::  Звания  :: 
  Поиск :    


Навигация



Главная Форум Галерея Файлы Библиотека Гостевая книга



Online






Мини-чат






Баннеро обменные сети






Главная » Статьи » Компьютер » Программирование

Cоветы по Web дизайну и HTML - Активные картинки
Активные картинки

Итак, немного теории: когда курсор мыши грозно нависает над картинкой, она издает крик о помощи - генерирует событие onMouseOver - "мышь надо мной", а когда мышь наконец уходит, издает сигнал спасения - событие onMouseOut. На самом деле ситуация сложнее - просто картинка лишена возможности издавать крики о помощи и только картинка, являющаяся одновременно ссылкой (т.е заключенная в тэги </a> </a>), может это делать.

В первую очередь необходимо организовать вызов команды спасения - создать инструкции, о том, что делать в случае получения сигнала о помощи:


<a href="index.html" onMouseOver="img_act('img1')"; onMouseOut="img_inact('img1')";>
<img src="1off.gif" name="img1" width=20 height=20 border=0></a>;

Что это значит? Мы создали ссылку, которая при событии onMouseOver быдет вызывать функцию JavaScript img_act, а при событии onMouseOut - img_inact. Внутри ссылки располагается наша картинка, обратите внимание на параметр name в тэге img - name="img1" - он дает картинке уникальное имя, которое передается "спасательным" функциям img_act и img_inact, чтобы они знали, над какой именно картинкой нависла грозная опасность.

На самом деле вся работа еще впереди - надо сделать функции-спасатели. Прежде всего надо зарезервировать 2 картинки, которые будут соответствовать включенному и выключенному состояниям. Обратите внимание, что называются они img1on и img1off т.е. как наша картинка img1, с прибавкой on и off (это не имеет никакого отношения к именам файлов):

img1on = new Image ;    img1off = new Image ;

Теперь надо указать, какие именно это картинки, т.е. прописать реальные имена файлов для включенного и выключенного состояний:

img1on.src = "1on.gif";    img1off.src = "1off.gif";

А теперь можно написать и сами функции-спасатели:


function img_act (imgName) {
imgOn = eval (imgName + "on.src");
document [imgName].src = imgOn; }

function img_inact (imgName) {
imgOff = eval (imgName + "off.src");
document [imgName].src = imgOff; }


Эти функции получают имя картинки и сохраняют его в переменной imgName. Мы вызывали функции img_act(img1), значит в нашем случае imgName=img1. Дальше к этому имени привешивается "on" или "off" - помните как мы обозначили имена для включенного и выключенного состояний - img1on и img1off. Наконец производится замена картинки c именем imgName (т.е. img1) на включенную (функция img_act) - img1on или выключенную (функция img_inact) - img1off.

Вот вроде и все - но есть еще маленькая заминка - Internet Explorer 3 кое-что не понимает и разразится кучей ошибок при обнаружении такого кода - необходимо определить броузер и исключить выполнение кода, если это IE3. Тут возможно несколько вариантов - как всегда решение в лоб не самое короткое и красивое (код взят у Евгения Савельева на www.js.ru):


browser_name = navigator.appName;
browser_version = parseFloat(navigator.appVersion);

if (browser_name == "Netscape" && browser_version >= 3.0) { roll = 'true'; }
else if (browser_name == "Microsoft Internet Explorer" && browser_version >= 3.0) { roll = 'true'; }
else { roll = 'false'; }

Тут анализируется броузер и если это IE3, то переменная roll получает значение false и тогда дальше надо выполнять проверку roll и запрещать выполнение, если roll не равно true. Более элегантное и короткое решение:

if (document.images)

это выражение равно false в случае IE3 - единственная строка выполняет те же функции, что и весь предыдущий код проверки броузера.

Итак привожу весь код (для примера пусть у нас будет 2 картинки): Эта часть вставляется в head вашего документа. Не забудьте, что содержимое между тэгами script должно быть вложено в комментарии для совместимости со старыми броузерами и некоторыми поисковыми системами:


<SCRIPT language="Javascript">
<!--
if (document.images)
{
img1on = new Image ;    img1off = new Image ;
img2on = new Image ;    img2off = new Image;

img1on.src = "1on.gif";    img1off.src = "1off.gif";
img2on.src = "2on.gif";    img2off.src = "2off.gif";
}

function img_act(imgName) {
if (document.images)
{ imgOn = eval (imgName + "on.src");
document [imgName].src = imgOn; } }

function img_inact(imgName) {
if (document.images)
{ imgOff = eval(imgName + "off.src");
document [imgName].src = imgOff; } }
//-->
</SCRIPT>

Эта часть вставляется в так сказать тело (body):

<a href="1.html" onMouseOver="img_act('img1')"; onMouseOut="img_inact('img1')";>
<img src="1off.gif" name="img1" width=20 height=20 border=0></a>

<a href="2.html" onMouseOver="img_act('img2)"; onMouseOut="img_inact('img2')";>
<img src="2off.gif" name="img2" width=20 height=20 border=0></a>


Если вы во всем разобрались, вам должно быть понятно, что можно создать другие функции, вызываемые событиями onMouseOver и onMouseOut, которые будут выполнять любые действия - например изменять вид другой картинки в другом месте или даже нескольких картинок и т.д. Применение ограничено только вашей фантазией, экспериментируйте.

Категория: Программирование | Добавил: Андромеда (31.12.2008)
Просмотров: 400 | Рейтинг: 0.0/0 |
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

DarkArt3D



DarkArt3D



Личный кабинет



Личный кабинет
Привет, Гость!
Полное имя: Гость
Ты здесь: -й день
IP: 3.21.100.34
  Пользователь №0
Ты в группе: ~/-Субъект-/~
Мой профиль
Изменить мои данные
Личные сообщения ()
Отправить ЛС
Список пользователей
Мои комментарии
Мои посты
Мои статьи
Добавить статью
Мои файлы
Добавить файл
Выход из профиля






Опрос


Чего вы хотите видеть на сайте больше
Всего ответов: 111



Cчетчик



Comments: 11
Forum: 37/618
Photo: 813
News: 28
Downloads: 174
Publisher: 134
Guestbook: 124






Счетчик посещений


Онлайн всего: 1
Субъектов: 1
Идентифицированых 0
Субъект