yeah, definitely - i'm using a script from oreilly to make an image map with rollover, only requiring two images for regular and over state - the javascript hides the over until the hotspot is accessed and then only shows through that piece of the image below:
function initMaps() {
if (document.getElementById) {
var mapIds = initMaps.arguments; // pass string IDs of containing map elements
var i, j, area, areas;
for (i = 0; i < mapIds.length; i++) {
areas = document.getElementById(mapIds).getElementsByTagName("area");
for (j = 0; j < areas.length; j++) { // loop thru area elements
area = areas[j];
area.onmousedown = imgSwap; // set event handlers
area.onmouseout = imgSwap;
area.onmouseover = imgSwap;
area.onmouseup = imgSwap;
}
}
}
}
// image swapping event handling
function imgSwap(evt) {
evt = (evt) ? evt : event; // equalize event models
var elem = (evt.target) ? evt.target : evt.srcElement;
var imgClass = elem.parentNode.name; // get map element name
var coords = elem.coords.split(","); // convert coords to clip
var clipVal = "rect(" + coords[1] + "px " +
coords[2] + "px " +
coords[3] + "px " +
coords[0] + "px)";
var imgStyle;
switch (evt.type) {
// case "mousedown" :
// imgStyle = document.getElementById(imgClass + "Down").style;
// imgStyle.clip = clipVal;
// imgStyle.visibility = "visible";
// break;
case "mouseout" :
document.getElementById(imgClass + "Over").style.visibility = "hidden";
// document.getElementById(imgClass + "Down").style.visibility = "hidden";
break;
case "mouseover" :
imgStyle = document.getElementById(imgClass + "Over").style;
imgStyle.clip = clipVal;
imgStyle.visibility = "visible";
break
// case "mouseup" :
// document.getElementById(imgClass + "Down").style.visibility = "hidden";
// guarantee click in IE
// if (elem.click) {
// elem.click();
// }
// break;
}
evt.cancelBubble = true;
return false;
}
then you refer to the area map and visibility this way:
<img src="images/menu.jpg" alt="header" name="header" width="800" height="115" style="position:absolute; top:80px; left:200px"
border="0" usemap="#header" id="headerUp"
visibility:visible" />
<map name="header" id="headerMap">
<area shape="rect" coords="282,12,439,29" href="#" />
<area shape="rect" coords="445,13,559,31" href="#" />
<area shape="rect" coords="576,12,635,29" href="#" />
<area shape="rect" coords="663,12,728,28" href="#" />
<area shape="rect" coords="744,13,790,29" href="#" />
<area shape="rect" coords="284,37,390,53" href="#" />
<area shape="rect" coords="398,36,535,54" href="#" />
<area shape="rect" coords="544,35,656,55" href="#" />
<area shape="rect" coords="659,35,730,55" href="#" />
<area shape="rect" coords="736,35,795,55" href="#" /></map>
<img id="headerOver" src="images/menuOver.jpg" width="800" height="115" border="0" style="position:absolute; top:80px; left:200px; visibility:hidden"
usemap="#header" />
what i want to do is keep the clipped visibility showing if you're on the page you selected - does this make more sense?
thank you!!