PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mouseover-Navigation Javascript anpassen


Javascript Anfänger
2009-02-14, 02:39:13
Hallo Leute, ihr scheint hier ja ein wenig Ahnung von Webdesign zu haben, deshalb wollte ich mal fragen ob ihr mir vielleicht bei einem kleinen Javascript weiterhelfen könnt.

Dieses Script hier --- http://www.kostenlose-javascripts.de/javascripts/texteffekte/mouseover-navigation.html ---
Enthält die Möglichkeit per Mouseover ein kleines Link Menü an der Mausposition anzeigen zu lassen.

Jedoch erscheint das Menü eben genau an der Maus Position was wiederum dazu führt das in meinem Menü einige nebenstehende Menüpunkte vom auffoppenden Menü verdeckt werden. Deshalb hätte ich gerne das sich die Menüpunkte nicht direkt an der Mausposition sondern ca 100 Pixel darunter öffnen. Sodass sie meine eigenen nicht verdecken. Hat jemand ne Ahnung wie ich das erreichen kann?

Ich wäre für eine Lösung sehr dankbar.

Gast
2009-02-14, 17:31:52
Eigentlich würde ich oben im aufpoppenden Div per Javascript ja einen transparenten Bereich erstellen, doch dann wirkt das Menü nur so als wäre es weiter unten jedoch kann ich dann trotzdem Links die sich Oben/darunter befinden nicht anklicken.
Es müsste wirklich statt direkt an der aktuellen Mausposition unter dieser erscheinen. Nur wie kriege ich dies hin?

Sephiroth
2009-02-14, 17:54:53
if (rightedge<menuobj.contentwidth)
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX-menuobj.contentwidth+"px" : window.pageXOffset+eventX-menuobj.contentwidth+"px";
else
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+"px" : window.pageXOffset+eventX+"px";

//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.style.top=ie5? iecompattest().scrollTop+eventY-menuobj.contentheight+"px" : window.pageYOffset+eventY-menuobj.contentheight+"px";
else
menuobj.style.top=ie5? iecompattest().scrollTop+event.clientY+"px" : window.pageYOffset+eventY+"px";
menuobj.style.visibility="visible";
In den Zeilen wir die x und y Position des Menüs festgelegt. Da kannst du einfach einen beliebigen zusätzlichen Abstand mit draufschlagen.

zum Beispiel überall 25 Pixel mehr
if (rightedge<menuobj.contentwidth)
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+25-menuobj.contentwidth+"px" : window.pageXOffset+eventX+25-menuobj.contentwidth+"px";
else
menuobj.style.left=ie5? iecompattest().scrollLeft+eventX+25+"px" : window.pageXOffset+eventX+25+"px";

//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.style.top=ie5? iecompattest().scrollTop+eventY+25-menuobj.contentheight+"px" : window.pageYOffset+eventY+25-menuobj.contentheight+"px";
else
menuobj.style.top=ie5? iecompattest().scrollTop+event.clientY+25+"px" : window.pageYOffset+eventY+25+"px";
menuobj.style.visibility="visible";

Javascript Anfänger
2009-02-14, 18:36:27
Vielen Dank, ich hatte es schon mal ähnlich versucht, hatte aber immer etwas falsch gemacht.
Wird es gleich mal ausprobieren.

Javascript Anfänger
2009-02-14, 22:16:22
Es funktioniert perfect vielen Dank (;

Javascript Anfänger
2009-02-21, 06:50:06
Jetzt bin ich mit dem Script an die Grenzen gekommen. Ich habe einen Menüpunkt ganz links auf der Seite und einen anderen ganz rechts auf der Seite.
Das Menü lasse ich immer 25px rechts und 25px unter der Maus erscheinen.
Wenn ich nun allerdings an den rechten Link komme erscheint das PopUp Menü
etwas außerhalb des Bildschirms. (Weil 25px weiter rechts).

Weiß jemand wie ich es bewirken kann das der ganz rechte Menüpunkt innerhalb des Anzeigebereichs bleibt ?

Javascript Anfänger
2009-02-21, 22:20:04
Ich habe schon versucht das gesamte Menü einfach weiter links erscheinen zu lassen, jedoch habe ich dann das selbe Problem auf der Linken Seite...

Javascipt Anfänger
2009-02-23, 01:05:45
Was ich auch versucht habe ist- Zwei voneinander unabhängige Menüs in die Seite zu integrieren. Das eine Script für alle Menüpunkte Links, und das andere für den einen ganz Rechts. Doch wenn ich das machen möchte, funktioniert immer nur ein Script/Menü. Bei dem anderen erscheint dann kein Menü sondern da steht "undefined".

Javascript Anfänger
2009-02-24, 04:55:49
Ich habe das Problem gelöst, trotzdem nochmal vielen Dank!