| home / experts / dhtml / column36 |
|

[Editor's note: this page was updated on May 1, 2003 to add support for later browsers.]

The menu above has a SELECT form element immediately below it. When the child menu appears, the form element is hidden. Otherwise, the element could show through the menu. See DHTML Diner for a discussion on form element persistence.
Examples:
Many readers have posed this question:
Move your rollover code to the evaluate_upon_tree_show and evaluate_upon_tree_hide parameters:
evaluate_upon_tree_show: "theImageName.src = 'onimage.src'"
evaluate_upon_tree_hide: "theImageName.src = 'offimage.src'"
Now, the appearance of the menu tree controls the image src, which is what you want. When you mouse over the image and the menu tree appears, the image displays in its "on" state. When you have finished navigating the menus and the menu tree is hidden, the image goes back to its "off" state.
Another common question:
We have demonstrated this with the SELECT example, above.
How you code it is up to you, but here is one way of doing it:
Enclose your element(s), in this case a SELECT element, in a positioned element:
<STYLE>
<!--
#mySelect {position:absolute;left:100;top:300}
-->
</STYLE>
<DIV ID="mySelect">
<FORM>
<SELECT>
<OPTION>some option</OPTION>
</SELECT>
</FORM>
</DIV>
Create a function, receiving two arguments, that toggles the visibility of a positioned element:
function showSelect(isOn,divName) {
var theSelect = null;
if(document.getElementById) {
theSelect=document.getElementById(divName);
if(theSelect) theSelect.style.visibility = isOn ? "visible" : "hidden";
} else if (document.all) {
theSelect=document.all(divName);
if(theSelect) theSelect.style.visibility = isOn ? "visible" : "hidden";
} else if (document.layers) {
theSelect=document[divName];
if(theSelect) theSelect.visibility = isOn ? "show" : "hide";
}
}
Place function calls as the evaluate_upon_tree_show and evaluate_upon_tree_hide parameters:
evaluate_upon_tree_show: "showSelect(false,'dv')" evaluate_upon_tree_hide: "showSelect(true,'dv')"
The above example is for a cross-browser environment. In IE or DOM-only code, the SELECT element need not be enclosed in a positioned element. Its visibility can be toggled directly.
Finally, the complementary parameter, evaluate_upon_tree_hide.
Produced by Peter Belesis and
All Rights Reserved. Legal Notices.
Created: Sept 05, 2000
Revised: May 1, 2003
URL: http://www.webreference.com/dhtml/column36/8.html