Dirk: Infobox mit onMouseOver und DIV STYLE position ... Hilfe

Hallo, ich habe eine ziemlich lange Seite, in welcher durch Text-Anker nach unten navigiert werden kann - zwischen den Abschnitten sind viele <br> um den optischen Eindruck zu erwecken, daß es sich um verschiedene Seiten handelt.

Nun habe ich auf dieser Seite mehrere Begriffe mit einer kleinen Infobox verlinkt. Auf der ersten Seite klappt die Anzeige auch wunderbar - nur wenn man weiterscrollt, und über einen neuen Begriff mit der Maus fährt, wird die Box nicht angezeigt.

Das Problem liegt in der Funktion bei div style:

function zeigen(z)
{
x=window.event.clientX+5;
y=window.event.clientY+5;
document.all('hint').innerHTML = '<div style="position:absolute; top:'+y+'px; left:'+x+x'px">'+HText[z]+'</div>';
}
function verbergen(z)
{
x=window.event.clientX+5;
y=window.event.clientY+5;
document.all('hint').innerHTML = '<div style="position:absolute; top:'+y+'px; left:'+x+x'px">'</div>';
}
function bewegen(z)
{
verbergen();
zeigen(z);
}

Im BODY
<DIV ID="hint" STYLE="position:absolute; top:1px; left:1px"></DIV>

aufgerufen wird es mit onMouseover, onMouseOut   usw.

Wie kann ich die Position anders definieren??? Versuche mit STATIC etc. schlugen fehl.  Auf das bewegen könnte ich auch verzichten...

Bitte helft mir
Danke
Dirk

  1. Hi,

    Hallo, ich habe eine ziemlich lange Seite, in welcher durch Text-Anker nach unten navigiert werden kann - zwischen den Abschnitten sind viele <br> um den optischen Eindruck zu erwecken, daß es sich

    um verschiedene Seiten handelt.

    Ist nicht gerade eine Saubere Lösung.

    Nun habe ich auf dieser Seite mehrere Begriffe mit einer kleinen Infobox verlinkt. Auf der ersten Seite klappt die Anzeige auch wunderbar - nur wenn man weiterscrollt, und über einen neuen Begriff mit der Maus fährt, wird die Box nicht angezeigt.

    Das Liegt daran das die Position absolut ist, d.h du musst die Scrollposition mit berücksichtigen.

    Hier findest du mehr:

    http://selfhtml.teamone.de/javascript/objekte/window.htm#page_y_offset

    Den aktuellen Scrollwert, musst du bei der positionierung des Layers mit einbauen.

    Gruß

    ueps

    1. Hey - danke für die schnelle Antwort ....

      Hallo, ich habe eine ziemlich lange Seite, in welcher durch Text-Anker nach unten navigiert werden kann - zwischen den Abschnitten sind viele <br> um den optischen Eindruck zu erwecken, daß es sich
      um verschiedene Seiten handelt.

      Ist nicht gerade eine Saubere Lösung.

      ich weiß, aber da es sich um einen Fragebogen handelt und ich nicht nach jedem Bildschirminhalt submitten will, ist es die einfachste Lösung für diesen Zweck

      Ich habe jetzt die Funktion um den Befehl document.body.scrollTop geändert:

      function zeigen(z)
      {
      x=window.event.clientX+5;
      y=window.event.clientY+document.body.scrollTop;
      document.all('hint').innerHTML = '<div style="position:absolute; top:'+y+'px; left:'+x+x'px">'+HText[z]+'</div>';
      }

      Laut SELFHTML geht das aber nur beim MSIE - gibts noch etwas besseres??

      Dirk

      1. Hey - danke für die schnelle Antwort ....

        Bitte.

        Laut SELFHTML geht das aber nur beim MSIE - gibts noch etwas besseres??

        Mit window.pageYOffset kannst du das auch im Netscape 4.x machen,
        musst daher halt eine kleine Browserabfrage reinbauen.

        Ob das ganze auch in N6 funktioniert weiß ich leider nicht, müsstest du vielleicht mal testen.

        Wenn du statt position:abolute fixed nimmst müsste das auch ohne die
        Scrollposition gehen, jedoch funktioniert fixed in den alten Browsern nicht.

        Eine andere Lösung kenn ich leider nicht.

        Gruß

        ueps