PDA

View Full Version : Layers


kathryn
11-18-2002, 02:29 PM
Hi,
I am using the folowing Javascript function to hide/show div layers for a drop down menu.
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--

var remember = new Array();
var remember2 = new Array();
var checkIt;

var DHTML = (document.getElementById || document.all || document.layers);

function show(name,lvl,obj)
{
if (!DHTML) return;
//checkUserInput();
if (remember[lvl] && remember[lvl] == name) return;
if (remember[lvl])
{
closeAll(lvl);
}
if (name)
{
var x = getObj(name);
x.visibility = 'visible';
}
remember[lvl] = name;
if (obj.parentNode) y = obj.parentNode;
else if (obj.parentElement) y = obj.parentElement;
else return;
if (y.className) return;
y.className = 'over';
if (remember2[lvl]) remember2[lvl].className = '';
remember2[lvl] = y;
}

function closeAll(lvl)
{
for (i=remember.length - 1;i>=lvl;i--)
{
if (remember[i]) //IE4 Mac
{
var x = getObj(remember[i]);
x.visibility = 'hidden';
}
remember[i] = null;
if (remember2[i])
{
remember2[i].className = '';
remember2[i] = null;
}
}

}

function checkUserInput()
{
if (checkIt) clearTimeout(checkIt);
checkIt = setTimeout('closeAll(1)',1000);
}

function getObj(name)
{
if (document.getElementById)
{
return document.getElementById(name).style;
}
else if (document.all)
{
return document.all[name].style;
}
else if (document.layers)
{
return document.layers[name];
}
else return false;
}

// -->

Where in the HTML code I have an image map

<map name="TopNavMap" id="TopNavMap">
<area alt="" coords="17,13,229,44" href="<%#" onMouseOver="show('NFP',1,this)" shape="RECT"></map>

which calls the div layers below

<DIV CLASS="navilayerNFP" ID="NFP" STYLE=" left: 28px; top:159px" >
<DIV><A HREF="#" onMouseOver="show('',2,this)" >&nbsp;&gt; 1</A></DIV>
<DIV><A HREF="#" onMouseOver="show('',2,this)" >&nbsp;&gt; 2</A></DIV>
<DIV><A HREF#" onMouseOver="show('',2,this)" >&nbsp;&gt; 3</A></DIV>
</DIV>

My problem is that onMouse over the user should never see the map disappear but in the function is is set to disappear after a certain number of seconds(function checkUserInput()) whether they are mousing over the map/divs or not.
Only on mouse out should the divs disappear???
Does anyone have any ideas.
Thanks, Kathryn