В этом уроке мы рассмотрим реализацию динамических подсказок и подсветки кнопок. Эти две функции ничем принципиально не различаются. Обе они основаны на показе и прятании слоя. Я опишу их раздельно только для того, чтобы Вы оценили возможности применения динамического HTML.
В прошлом уроке мы написали функции для прятания и показа слоя. Вот они:
function hideLayer(layerName){ eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"'); } function showLayer(layerName){ eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"'); }
Воспользуемся ими для реализации нашего примера. Предположим, что у нас есть некое меню. Мы хотим, чтобы при выборе курсором мыши определенного пункта, он подсвечивался вокруг (или изменялся другим образом). Создадим две картинки. Сам пункт меню и его подсветку (В зависимости от способа подсветки скрипт пишется немного по-разному, он будет немного проще, если подсвечивать не сверху, как у меня, а снизу).
Создадим два слоя. Один видимый с пунктом меню, другой невидимый с подсветкой.
<style type="text/css"> #button1 {POSITION: absolute; Z-INDEX: 10; LEFT: 150; TOP: 60; WIDTH: 423; HEIGHT: 45} #highlight1 {POSITION: absolute; Z-INDEX: 15; VISIBILITY: hidden; LEFT: 150; TOP: 60; WIDTH: 423; HEIGHT: 45} </style> <div id="button1"> <a href="wd.html"><img src="wd.gif" width=189 height=43 border=0></a> </div> <div id="highlight1"> <a href="wd.html"><img src="wd-g.gif" width=189 height=43 border=0></a> </div>
При этом Z-INDEX у пункта меню должен быть больше, чем у подсветки, если мы подсвечиваем "снизу", и меньше, если мы подсвечиваем "сверху" (наш вариант).
Ну а теперь воспользуемся событиями onMouseOver и onMouseOut:
<a href="wd.html" onMouseOver="showLayer('highlight1')" onMouseOut="hideLayer('highlight1')"> <img src="wd.gif" width=189 height=43 border=0> </a> <a href="wd.html" onMouseOver="showLayer('highlight1')" onMouseOut="hideLayer('highlight1')"> <img src="wd-g.gif" width=189 height=43 border=0> </a>
Если используется подсветка "снизу", ссылка у подсветки не нужна:
<a href="wd.html" onMouseOver="showLayer('highlight1')" onMouseOut="hideLayer('highlight1')"> <img src="wd.gif" width=189 height=43 border=0> </a> <img src="wd-g.gif" width=189 height=43 border=0>
Вы считаете, что Ваши пункты меню недостаточно информативны? Вы можете сделать так, чтобы при наведении курсором на пункт меню в определенном месте появлялась подсказка.
Все, что Вам для этого нужно, это для каждого пункта меню создать невидимый слой с подсказкой. При этом все эти слои должны иметь одинаковые позиционные параметры.
<style type="text/css"> #button1 {POSITION: absolute; Z-INDEX: 15; LEFT: 50; TOP: 60; WIDTH: 423; HEIGHT: 45} #explain1 {POSITION: absolute; Z-INDEX: 15; VISIBILITY: hidden; LEFT: 200; TOP: 60; WIDTH: 171; HEIGHT: 116} </style> <div id="button1"> <a href="mailto:webmaster@webclub.ru">Почта</a> </div> <div id="explain1"> Нажмите сюда, если Вы хотите послать письмо вебмастеру узла. </div>
А теперь, как и в предыдущем примере, воспользуемся событиями onMouseOver и onMouseOut:
<a href="mailto:webmaster@webclub.ru" onMouseOver="showLayer('explain1')" onMouseOut="hideLayer('explain')"> Почта</a>