Zum Inhalt springen

Leidige Thema Untermenü/GMENU_Layer

Erstellt am 21. Juni 2005 · 18 Antworten · letzte Antwort am 26. Oktober 2005

Tags: Frage

Suse ·

Jetzt sitze ich schon Monate daran und bekomme es nicht hin. Bitte helft mir...
Die Untermenüs erscheinen immer vom Punkt der Maus aus. Sie sollen einfach nur fest #angry# nebeneinander erscheinen.

Zum angucken: http://p11008.typo3server.info

Hier mal das TS:

#################
# MENU_OBEN EBENE 1 #
#################

MENU_OBEN = HMENU
MENU_OBEN.special = directory
MENU_OBEN.special.value = 8
MENU_OBEN.1 = GMENU_LAYERS
MENU_OBEN.1 {

useLargestItemY=1
layerStyle = position:absolute;left:30px;top:230px;width:10px; VISIBILITY:hidden;
xPosOffset = -200
yPosOffset = -15
relativeToTriggerItem=0
lockPosition = x
dontFollowMouse = true
doNotShowLink = 1

dontHideOnMouseUp = 0
hideMenuWhenNotOver=5
hideMenuTimer=200

expAll=1
relativeToParentLayer=1

NO {
backColor = #CC0000
XY = [10.w]+50, 20
wrap =   |
10 = TEXT
10.text.field = title
10.offset = 1,15
10.fontSize = 13
10.fontColor = #000000
10.fontFile = fileadmin/fonts/arialbi.ttf
10.niceText = 1
}
RO < .NO
RO = 1
RO {
10.fontColor = #FFFFFF
}
ACT < .RO
}
#################
# MENU_OBEN EBENE 2 #
#################

MENU_OBEN.2 = GMENU_LAYERS
MENU_OBEN.2 {
layerStyle = position:absolute; VISIBILITY:hidden;
xPosOffset = -60
yPosOffset = -200
dontFollowMouse = true
doNotShowLink = 1

lockPosition = y
displayActiveOnLoad = 0
hideMenuWhenNotOver=5
hideMenuTimer=200
expAll = 1
NO {
backColor = |*| #C9C7C7 || #C9C7C7 |*|
XY = 140, 20
10 = TEXT
10.text.field = title
10.fontFile = fileadmin/fonts/arial.ttf
10.niceText = 1
10.fontSize = 14
10.offset = 5,13

20 = BOX
20.dimensions = 0,0,1,20
20.color = #000000

30 < .20
30.align = r

40 = BOX ||
40.dimensions = 0,0,140,1
40.color = #000000

50 = |*||*| || BOX
50.dimensions = 0,0,140,1

50.color = #000000
50.align = ,b

}

RO < .NO
RO = 1
RO {
backColor = #CC0000
}

}
#################
# MENU_OBEN EBENE 3 #
#################

MENU_OBEN.3 = GMENU
MENU_OBEN.3 {
NO {
backColor = |*| #C9C7C7 || #C9C7C7 |*|
XY = 140, 20
10 = TEXT
10.text.field = title
10.fontFile = fileadmin/fonts/arial.ttf
10.niceText = 1
10.fontSize = 14
10.offset = 5,13

20 = BOX
20.dimensions = 0,0,1,20
20.color = #000000

30 < .20
30.align = r

40 = BOX ||
40.dimensions = 0,0,140,1
40.color = #000000

50 = |*||*| || BOX
50.dimensions = 0,0,140,1
50.color = #000000
50.align = ,b
}
RO < .NO
RO = 1
RO {
backColor = #CC0000
}
}

Habe gem. Forum schon vieles probiert. Wahrscheinlich mein Setup dadurch versaut.
Danke im voraus.[/url]

Moeffz ·

Hier gibt es eine deutsche Version der Referenz, die bereits die Menüs umfaßt. Lies Dir mal dort durch, was zu dontFollowMouse geschrieben steht.

Wenn ich mich recht entsinne, hatte ich Dir das vor etwa zwei Monaten schon geschrieben.

Suse ·

Ja , solange sitze ich auch schon daran. Ich finde nur englische Dokus. Wo steht denn mein Problem in Deutsch.???
Danke für deine Hilfe im voraus.

Moeffz ·

Hier links im Menü steht "TypoScript Referenz". Den Rest solltest Du finden.

Ich weiß selber nicht, wie lange das schon existiert. Habe erst kürzlich davon erfahren. Ist aber irgendwie einfacher zu lesen. 😉

Suse ·

Danke, aber ich werde schon bald verrückt. Wenn man nur deswegen schon über 2 Monate daran sitzt.... #angry#

Moeffz ·

Kann ich verstehen. Schau mal genau, welche Möglichkeiten es gibt (TSref bzw.: Ich hatte damals ja ein paar Sachen gepostet.) und gib Bescheid, wenn es immer noch nicht läuft. Dann mach aber auch eine kurze Info, was Du probiert hast.

Suse ·

dontFollowMouse funktioniert ja so wie beschrieben. Das nächste Menü folgt nicht der Maus. Aber es geht immer vom Aktivierungspunkt aus, so daß es je nach Aktivierung um 1-2 cm verschieden öffnet.
Habe x/yPosOffset , topOffset, leftOffset.......
durch. Kann zwar die Position verändern, aber wieder nur nach Aktivierungspunkt.
Ich sitze schon mit Schweissausbrüche hier.....
Weiß jetzt überhaupt nicht mehr weiter.
Kannst dir ja mal das Menü angucken.
http://p11008.typo3server.info

Moeffz ·

Setz das mal an entsprechender Stelle in Ebene1 ein:

1{
            
      # Auf der ersten (waagerechten Ebene) bestimmt das höchste die Höhe
      useLargestItemY=1

      # Abstand von oben bzw. links und zwar der Layer zum Bezugspunkt
      topOffset=15
      leftOffset=35

      # Positioniert das Menü relativ zum Bezugpunkt (aktiv:=1)
      relativeToParentLayer=1
      relativeToTriggerItem=1

      # Das Menü soll sich nicht mit der Maus bewegen!
      lockPosition = x

      # Aktiviert den nächsten Level des Menus 
      expAll=1
#      wrap = <table border="0" cellspacing="0" cellpadding="0"><tr>|</tr></table>
      hideMenuWhenNotOver=1
      freezeMouseover = 1
      NO{

Wenn das nicht klappt, kannst Du mal zusätzlich den Kommentar vor dem wrap entfernen und in den Zustand NO Deinen "wrap = |" durch diesen hier ersetzen:

wrap = <td bgcolor="#FFFFFF" valign="middle">|</td>

Bei Ebene2 muss es natürlich äquivalent

useLargestItemX = 1

heißen (statt Y).

Dein Menü verhält sich nämlich sowohl unter Opera 7.54 als auch FireFox 1.0.4 und im Internet Explorer 5.5 "seltsam".

Meines ist hier zusehen:
http://p9728.typo3server.info/home.1.html

Leider ist nach dem Upgrade die Darstellung unter Opera noch nicht korrigert :o Dass es ein TMENU_LAYERS ist, tut bei der Positionierungsthematik nichts zur Sache.

Suse ·

Danke dir , aber es hat nicht viel gebracht.
Das einzige was geholfen hat ist topOffset und leftOffset.
Dafür öfnnen aber alle Menüs in der 2. Ebene an der selben stelle.
Die 3. Ebene bekomme ich einfach nicht höher, trotzdem ich auch hier topOffset gesetzt habe.
Setze ich relativeToTriggerItem auf 1, verschwindet das Menü komplett und die Seite hat einen anderen Aufbau.
Ebenso gefällt mir die Aufteilung der 3. Ebene nicht.
Verzweiflung pur #angry#

Suse ·

Habe jetzt herausgefunden warum die Untermenüs nebeneinander aufgeteilt waren.
Anstatt
layerStyle = position:absolute;VISIBILITY:hidden;

habe ich

layerStyle = position:absolute;left:30px;top:230px;width:10px; VISIBILITY:hidden;
sestzt.
Wenigstens etwas :p
Warum funktioniert aber leftOffset und topOffset nicht ?

Suse ·

Kann nicht doch noch mal jemand in mein TS schauen. Habe einiges Verändert und es fehlt nur noch die Lösung für die Höhenpositionierung der 2. und. 3. Ebene. Sie verändert sich immer so, wo ich mit der Maus das Feld aktiviere. Soll aber einen festen Punkt haben.
Hier das TS:

#################
# MENU_OBEN EBENE 1 #
#################

MENU_OBEN = HMENU
MENU_OBEN.special = directory
MENU_OBEN.special.value = 8
MENU_OBEN.1 = GMENU_LAYERS
MENU_OBEN.1 {

useLargestItemY=1
layerStyle = position:absolute;left:30px;top:230px;width:10px; VISIBILITY:hidden;
xPosOffset = -200
yPosOffset = -15
relativeToTriggerItem=0
relativeToParentLayer = 1
lockPosition = x
dontFollowMouse = true
doNotShowLink = 1
topOffset = 25
leftOffset = 500
dontHideOnMouseUp = 1
hideMenuWhenNotOver=5
hideMenuTimer=200

expAll=1

NO {
backColor = #CC0000
XY = [10.w]+50, 20
wrap = |
10 = TEXT
10.text.field = title
10.offset = 1,15
10.fontSize = 13
10.fontColor = #000000
10.fontFile = fileadmin/fonts/arialbi.ttf
10.niceText = 1
}
RO < .NO
RO = 1
RO {
10.fontColor = #FFFFFF
}
ACT < .RO
}
#################
# MENU_OBEN EBENE 2 #
#################

MENU_OBEN.2 = GMENU_LAYERS
MENU_OBEN.2 {
layerStyle = position:absolute;left:30px;top:230px;width:10px; VISIBILITY:hidden;
dontFollowMouse = true
doNotShowLink = 1
useLargestItemX = 1
xPosOffset =
yPosOffset = -205
wrap = <td bgcolor="#FFFFFF" valign="middle">|</td>
topOffset = 100
leftOffset = 640
lockPosition = y
displayActiveOnLoad = 0
hideMenuWhenNotOver=5
hideMenuTimer=200
expAll = 1
NO {

backColor = |*| #C9C7C7 || #C9C7C7 |*|
XY = 140, 20
10 = TEXT
10.text.field = title
10.fontFile = fileadmin/fonts/arial.ttf
10.niceText = 1
10.fontSize = 14
10.offset = 5,13

20 = BOX
20.dimensions = 0,0,1,20
20.color = #000000

30 < .20
30.align = r

40 = BOX ||
40.dimensions = 0,0,140,1
40.color = #000000

50 = |*||*| || BOX
50.dimensions = 0,0,140,1

50.color = #000000
50.align = ,b

}

RO < .NO
RO = 1
RO {
backColor = #CC0000
}

}
#################
# MENU_OBEN EBENE 3 #
#################

MENU_OBEN.3 = GMENU
MENU_OBEN.3 {
NO {
backColor = |*| #C9C7C7 || #C9C7C7 |*|
XY = 140, 20
10 = TEXT
10.text.field = title
10.fontFile = fileadmin/fonts/arial.ttf
10.niceText = 1
10.fontSize = 14
10.offset = 5,13

20 = BOX
20.dimensions = 0,0,1,20
20.color = #000000

30 < .20
30.align = r

40 = BOX ||
40.dimensions = 0,0,140,1
40.color = #000000

50 = |*||*| || BOX
50.dimensions = 0,0,140,1
50.color = #000000
50.align = ,b
}
RO < .NO
RO = 1
RO {
backColor = #CC0000
}
}

Moeffz ·

Wenn Du herausgefunden hast, dass die standardeinstellung für layerStyle besser ist, als Deine Variante:
Warum taucht die alte Variante noch in Deinem Code auf?

Momentan erscheint die erste Ebene, die sich ausfaltet bei meinen Browsern immer an der gleichen Stelle. Hast Du

relativeToTriggerItem = 1

auf Ebene 1 schonmal ausprobiert?

Und auf Ebene 2:

relativeToTriggerItem = 1
relativeToTriggerItem.addWidth = 1

?

Müßtest Du ja eigentlich, wenn Du mein Snippet mal getestet hast. Da dann ja leider die Elemente der Ebene 1 untereinander erscheinen, hast Du bestimmt, wie in der TSRef empfohlen und bei meinem Posting mit den Snippets angemerkt, die Ebene in eine Tabelle gewrappt.
Auszug aus der deutschen TSRef:
"Wenn Ihr Menü horizontal ist, formatieren Sie Ihre Menüelemente immer in einer Tabelle, damit wegen der <div>-Tags keine Zeilenumbrüche dargestellt werden."

Wenn Du beide Fragen mit "ja" beantworten kannst, kann ich Dir so aus der Ferne nicht mehr weiter helfen. Sorry.

Suse ·

wenn ich unter der 1. Ebene reltiveToTriggerItem = 1 setze, verschiebt sich das Menü und Es ist nur noch der 1. Eintrag zu sehen.
So wie ich es jetzt hinbekommen habe, geht es ja, bis auf die Aktivierung der Höhe.Das erste Fenster öffnet sich immer relativ zum Aktivierungspunkt. Aber nur von der Höhe.
Aber trotzdem vielen Dank für die Hilfe. 😃

Moeffz ·

Hast Du denn zusätzlich Dein Menü in eine Tabelle gewrappt?

Dass sich das Menü bei der Einstellung sonst im IE verzieht ist mir klar. 8-)
Aber das steht ja auch so in der TSRef...

Dalerion ·

Ich muss das Thema nochmal aufwärmen! Gibt es keine andere Möglichkeit als Tabellen? Ich habe es hier mit einer fertigen Website zu tun und was weiß ich, wie viele Leute hier schon an den Stylesheets rumgefummelt haben, wenn ich das Ganze in eine Tabelle wrappe, sieht mein Menü leider nicht mehr so aus, wie es sollte.

Ich verzweifle hier langsam!

Gruß Dale

brennfleck-sacher ·

Hallo

ich hatte auch das Problem

hier mein Lösungsansatz
Ich verwende eine css-Datei (position: absolut!!!) um meine Inhalte darzustellen.
dann muß nur noch die x oder y PosOffset bestimmt werden.

temp.subnav = HMENU
temp.subnav.entryLevel = 1
temp.subnav.1 = GMENU_LAYERS
temp.subnav.1 {
layerStyle = position:absolute;left:0px;top:145px;width:0px;VISIBILITY: hidden;
xPosOffset = -150
lockPosition = x
expAll=1

Dalerion ·

Hmm... Ich habe erstmal die "einfache" Variante benutzt und eine Tabelle für die Navi erstellt und dem entsprechend die CSS - Datei geändert. Ich hoffe nur, dass ich jetzt keinen Rattenschwanz mit Änderungen hinterher ziehe.
Das ist ja die große Gefahr, wenn man einen bestehenden Stylesheet verändert.

Gruß Dale