Sertl: Menü an der Maus ausrichten

Sers,

die Idee:

Ich habe ein Pic als Hintergrund. Ein Teil des Pics habe ich als imagemap definiert. Sobald der User über die Map kommt soll genau neben dem Mauszeiger zwei buttons auftauchen ("Deutsch", "English").
Ich habe mir halt gedacht ich definiere dafür einen <DIV>-Bereich und packe die Buttons da rein.

Was bisher funzt:
dass die Buttons, sobald der User über die Map kommt angezeigt werden. Allerdings werden sie nur an der, im <style>-Bereich vordefinierten Stelle sichtbar.

function showmenu(){
document.getElementByID("menu").style.left = 600;
document.getElementByID("menu").style.top = 100;
document.getElementById("menu").style.visibility = "visible";}

Ich dachte mir, ich brauche einfach nur die left-Notation im <style>-bereich ändern und schon wird der Button an diese Stelle gepackt!
Dabei schmeißt er mir aber einen Fehler zurück. Hoffe Ihr könnt mir da weiterhelfen. thx

  1. Hi!

    Ich dachte mir, ich brauche einfach nur die left-Notation im <style>-bereich ändern und schon wird der Button an diese Stelle gepackt!
    Dabei schmeißt er mir aber einen Fehler zurück. Hoffe Ihr könnt mir da weiterhelfen. thx

    1. Was hast du denn versucht, um die "left-Notation" zu ändern?

    2. Welchen Fehler "schmeißt 'er' zurück"?

    3. Meine Glaskugel ist momentan in der Reinigung.

    Gruß

    mdkiller

    1. Dere,

      1. um die LEFT-Notation zu ändern habe ich folgendes probiert
         document.getElementByID("menu").style.left = 600;

      ich dachte, da es mit der visibility-Eigenschaft funzt müsste es so auch funzen.

      2. Als Fehler bringt er:
         "Das Objekt unsterstützt die Eigenschaft oder Methode nicht!"
         als Zeilensprungmarke zeigt er mir die Zeile mit der LEFT-Notation.

      3  Meine ist kaputt.

      1. hi,

        1. um die LEFT-Notation zu ändern habe ich folgendes probiert
             document.getElementByID("menu").style.left = 600;

        600 _was_?

        längenangaben in CSS benötigen, ausser bei einem wert von null, _immer_ die angabe einer einheit.

        gruss,
        wahsaga

        1. hi,

          hab ich schon ausprobiert, funzt aber nicht:

          document.getElementByID("menu").style.left = "600px";

          mfg,

          Andreas

          1. Hi,

            Im IE klappt jetzt alles, jedesmal wenn ich die Maus über der Map bewege, wird das Menü direkt daneben angezeigt. Nur im Netscape funktioniert es nicht ganz. Es kommt mir so vor, als ob das Mouseover-Ereignis nur alle heilige Zeit mal anschlägt, und so auch die Funktion zum Ausrichten des Menüs nicht bei jeder Bewegung aufruft. Wie kommt das?

            Code für Netscape:

            function coordsNS(ereignis)
            {
              var x = ereignis.pageX;
              var y = ereignis.pageY;

            if((x >= 156 && x <= 645) && (y >=92 && y <=293))
              {
                document.getElementById("menu").style.left = x;
                document.getElementById("menu").style.top = y;
                document.getElementById("menu").style.visibility = "visible";
              }
              else
              {
                document.getElementById("menu").style.visibility = "hidden";
              }
            }
            document.onmouseover = coordsNS;

            mfg

            Andreas

            1. Hallo!

              Wie kommt das?

              function coordsNS(ereignis)

              ^^^^^^^^^^

              document.onmouseover = coordsNS;

              ^
              Merkst du was?

              Gruß

              mdkiller

              1. Hi,

                ne, das mit dem Aufruf der Funktion passt scho. Der Fehler liegt darin, dass ich onmouseover notiert habe, es muss aber onmousemove heißen, dann funktioniert es so, wie ich will.

                mfg

                andreas

                1. Hi Sertl!
                  wenn die Funktion per onmousemove über die komplette Seite aufgerufen wird, find ich das schon ein bisschen heftig. Irgendwie ressourcenfressend würd ich sagen...

                  Gruß

                  mdkiller

      2. Dere,

        1. um die LEFT-Notation zu ändern habe ich folgendes probiert
             document.getElementByID("menu").style.left = 600;

        ich dachte, da es mit der visibility-Eigenschaft funzt müsste es so auch funzen.

        Es würde auch funktionieren, wenn du es richtig geschrieben hättest ;-) es heisst: getElementById (achte mal auf die Groß-/Kleinschreibung). Ich weiß zwar nicht, wie du das "menu" mit einer festen Position an der Maus ausrichten willst, aber na ja. Ich schätze mal, du willst das Menü in der Nähe von dem per mouseover angesteuertem Element plazieren... Dann geht es so.

        1. Als Fehler bringt er:
             "Das Objekt unsterstützt die Eigenschaft oder Methode nicht!"
             als Zeilensprungmarke zeigt er mir die Zeile mit der LEFT-Notation.

        Nimme keinen IE zum debuggen. Die Fehlermelfungen im Mozilla/Netscape/Opera sind aussagekräftiger (meistens).

        Gruß

        mdkiller

        1. Hi,

          jetzt gehts; Habs ausgebessert!

          thx.

          Andreas