Разворачивание слоя.
Сначала создадим слой, который собираемся разворачивать.
Пример:
<div id="layer1" style="position:absolute; width=100; height=30;
z-index:1; visibility:hidden; background-color:#808080; top:100; left:100;"> Hello world! </div>
С помощью задания значения объекту document.all["layername"].style.clip
можно задать прямоугольную область слоя, которая будет видимой. Все
содержимое слоя вне этой области будет невидимым. Применим это для создания
всплывающих подсказок. Напишем функции "показать подсказку"
(showtip) и "спрятать подсказку" (hidetip).
Пример:
<script language="javascript1.2"><!--
//нам понадобятся уже известные нам функции hidelayer,showlayer var layerRef="null", styleSwitch="null"; if(navigator.appName=="Netscape"){
layerRef="document.layers"; styleSwitch="";}
else{layerRef="document.all"; styleSwitch=".style";}
function hidelayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');} function showlayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');}
//переменные var curh,curw; //текущие размеры видимой области var curlayer; //имя текущего слоя var xstep,ystep; //шаг по x и по y var stopww,stophh; //конечные размеры видимой области var delay=100; //задержка
//функция показывает подсказку
//аргументы: имя слоя с подсказкой, шаг по x, шаг по y, задержка,
//конечные размеры видимой области по x, и по y. function showtip(layername,xstp,ystp,deltime,stopw,stoph){ curh=0;curw=0; //определяем значения переменных curlayer=layername; xstep=xstp;ystep=ystp; stopww=stopw;stophh=stoph; delay=deltime; showlayer(layername); //показываем слой с подсказкой unpacklayer(); //вызываем вспомогательную функцию "развернуть слой" }
function unpacklayer(){ eval('document.all["'+curlayer+'"].style.clip="rect(0 '+curw+'px '+curh+'px 0)"'); curw+=xstep; curh+=ystep; if(curw>stopww){curw=stopww;} if(curh>stophh){curh=stophh;} if(curw!=stopww | curh!=stophh){setTimeout("unpacklayer()",delay);} }
//функция прячет слой (layername) с подсказкой function hidetip(layername){ hidelayer(layername); eval('document.all["'+layername+'"].style.clip="rect(0 0 0 0)"'); } --></script>
Вот и все! Далее создаем кнопку к которой у нас будет всплывающая подсказка. Пример:
<input type="button" name="samplebutton" value="наведите сюда мышку"
onMouseOver="showtip('layer1',5,5,50,101,30);" onMouseOut="hidetip('layer1');">
И это будет выглядеть так:
|