Вернутся к Приемам HTML | Home (на главную) | htmljava.narod.ru

Разворачивание слоя.

Сначала создадим слой, который собираемся разворачивать.
Пример:
<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');">

И это будет выглядеть так:
 

Вернутся к Приемам HTML | Home (на главную) | htmljava.narod.ru
Сайт управляется системой uCoz