Moin moin!
Eins vorweg: ich bin ein ziemlicher JavaScript-Anfänger!!
Es geht um folgendes Problem: eine lokale Präsentation einer archäologischen Ausgrabung umfasst insgesamt 8 HTML-Seiten, auf denen sich jeweils eine große Imagemap befindet. Beim Überfahren der einzelnen areas sollen dann mehrere, zu den einzelnen Punkten gehörende Bilder sichtbar werden und anschließend wieder verschwinden.
Es ist mir auch gelungen, einzelne Layer sichtbar zu machen und wieder verschwinden zu lassen mit der folgenden Methode (Anm: Anwendung braucht nur auf dem IE 5.5 zu laufen!)
ausgelagertes Script (Auszug)
function showeins ()
{ eins.style.visibility="visible";
zwei.style.visibility="visible";}
function hideeins ()
{ eins.style.visibility="hidden";
zwei.style.visibility="hidden";}
wird im HTML-Code aufgerufen durch:
<area shape=rect coords="304,234,447,377" onmouseover="javascript:showeins ()" onmouseout="javascript:hideeins ()" href="#">
was auch funktioniert ("eins" und "zwei" sind die IDs der mittels CSS absolut positionierten Layer).
Da ich aber insgesamt sehr viele Layer auf mehreren Seiten hin- und wieder wegzaubern muss, würde ich gerne einen allgemeineren Ansatz finden. Versucht habe ich es mit einem im Archiv gefundenen Script, das leider nur teilweise funktioniert:
<script language="JavaScript">
<!--
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
v6 = (document.getElementById)? true:false
function showlayer(layerid)
{
if (ns4) document.layers[layerid].visibility = "show"
else if (v6) document.getElementById(layerid).style.visibility = "visible";
else if (ie4) document.all[layerid].style.visibility = "visible"
}
function hidelayer(layerid)
{
if (ns4) document.layers[layerid].visibility = "hide"
else if (v6) document.getElementById(layerid).style.visibility = "hidden";
else if (ie4) document.all[layerid].style.visibility = "hidden"
}
//-->
</script>
und dann den Aufruf durch
<area shape=rect coords="304,234,447,377" onmouseover="javascript:showlayer ('eins','zwei')" onmouseout="javascript:hidelayer ('eins','zwei')" href="#">
Der IE zeigt nur den ersten aufgeführten Layer an; irgendwie rall ich nicht, wie ich dem Script beibiegen kann, zwei und mehr Layer gleichzeitig zu öffnen. Für Füchse vermutlich relativ einfach, für mich aber nicht!
Vielen Dank im Voraus!
Jochen