Grafisches Menü mit statischen Buttons und Effekten realisieren
|
Author: CodeFlatter (René)
Author E-Mail:
Eingetragen: 27.08.2005 - 21:42
Quelle:
Klicks: 3198
Dieses kleine Tutorial soll Einsteigern helfen, grafische Menüs mit statischem Buttonhintergrund aber dynamischer Beschriftung zu realisieren. Die notwendige Buttonbreite wird dabei automatisch errechnet. Auch kleine Effekte sind schnell umsetzbar.
Am Ende des Tutorial findest Du einen Link, wo alle notwendigen/verwendeten Dateien bezogen werden können. Beginnen wir mit einem horizontalen Menü. So könnte es mal aussehen: oder auch selektiert![]() Für die spätere Webseite wird ein Menü-Marker in der Vorlage (Template) benötigt. Die Vorlage wird dann vom Setup gezogen. Für das Beispiel kann diese Vorlage verwendet werden, erzeuge einfach die entsprechende Datei im angegebenen Verzeichnis. fileadmin/templates/vorlage.tmpl.html
Damit die Datei im Browser getestet werden kann, habe ich eine HTML-Gerüst um die Tabelle gelegt. Das Setup wird aber nacher nur den Sub-Part "Document" aus der Datei verwenden. Im Typo3 kann nun eine neue Seite erstellt werden. Innerhalb dieser Seite muss jetzt jeweils eine Seite pro Menü-Button erstellt werden. Dabei sollte sich in etwa folgende Struktur ergeben (bei drei Buttons): ![]() Die Hauptseite der neuen Struktur sollte jetzt ein eigenes Template bekommen. Befindet sich die neue Struktur in einem Baum, in dem bereits ein Template existiert - so kann mit "Click here to create an extension template." das bestehende Template erweitert werden. Für den anderen Fall muß mit dem Button "Create template for a new site" ein neues template erstellt werden. Ins Setup des Templates kommt zu Begin folgender TypoScript-Inhalt:
Ersetze die 4 aus der Zeile MENU_HEAD.special.value = 4 mit der ID Deiner Hauptseite des Menüs (erste Seite der neuen Struktur) Speichern nicht vergessen! ;) Dieses Script ersetzt den Marker ###MENU_HEAD### aus der Vorlage mit dem Ergebnis das Scripts. 10.workOnSubpart = DOCUMENT Sorgt dafür, das nur der Bereich ###DOCUMENT### aus der Vorlage geladen wird, der Rest bleibt unbeachtet. 10.marks Ab hier begint der Austausch der Marker. XY = [10.w] + 20, 28 Hier wird vereinbart, das sich die Buttonbreite aus der Textbreite (10.w = vereinbarter Text aus 10, w = width) plus 20 Pixel ergibt, die Höhe ist 28 Pixel 4 = IMAGE (wiederholt sich für jeden Button) Hier ist gut zu erkennen, das drei Images generiert werden, wobei je ein statisches Bild geladen wird. Der Text wird dann über den Button gezeichnet. Hier die drei Bilder, die durch den Scriptcode zu Buttons und dann zu einer Menüleiste zusammengesetzt werden: Die Bilder müssen also im Pfad fileadmin/buttons/left.PNG fileadmin/buttons/middle.PNG fileadmin/buttons/right.PNG bereitgestellt werden und sollten den linken, mittleren und rechten Teil des Button enthalten. Der mittlere Teil wird dann einfach so oft aneinander kopiert bis sich die notwendige Breite des Button ergeben hat, links und rechts wird dann nur noch angefügt - fertig ist der Button... Nun kann schon mal getestet werden! Das Ergebnis sollte etwa so aussehen: ![]() Gut, jetzt haben wir die Menüleiste, viel macht sie aber nicht her - es fehlt noch der mouseOver-Effekt. Der kann jetzt durch Erweitern des Scriptes hinzugefügt werden: Füge nach dem hier gekürzten Block
den folgenden Block direkt nach der schließenden Klammer ein
Das Geheimnis ist also schnell gelüftet, wir definieren einfach auch noch den Code für den Hovered-Button (RO), somit bekommen wir zwei Grafiken je Button generiert. Wieder die Grafiken: Das Ergebnis sollte etwa so aussehen: ![]() Oh - da ist ja noch ein kleiner Schatten unter dem aktiven Button! Den "zaubern" wir auch noch rein. Im Block
wird bei dem Pfeil noch um folgendes ergänzt;
Das sollte es aber jetzt gewesen sein :) Jetzt kann durch einiges "rumspielen" noch einiges Ausprobiert werden, so wäre z.B. je eine andere fontColor möglich usw. Achte aber immer darauf, NO und RO ergeben jeweils einen Button! Alles gut und schön, Du hättest das Menü gerne vertikal? Dann muß folgendes ergänzt bzw. ersetzt werden
das gleiche auch bei (RO!)
und das Ergebnis sollte etwa so aussehen: ![]() Wenn man jetzt noch an der Breite und an der Ausrichtung dreht (10.align = center), kann man sicher schon zufrieden sein. Das wars, ich hoffe der eine oder andere hatte eine kleine Hilfe. Greez! |
Zum Eingabeformular ![]() |
|
| Seite: | 1 |







oder auch selektiert






