Zum Inhalt springen

RO in Menu funktioniert nicht

Erstellt am 13. September 2006 · 13 Antworten · letzte Antwort am 16. Januar 2007

Tags: HTML & CSS, Frage

-June- ·

mh,
also wie gesagt korrigiere mich wenn ich falsch liege aber die folgende zeile ist doch eindeutig JS! Die hab ich aus dem seitenquelltext und der zeigt was ausgegeben wird vom typo:

onmouseover="changeBGcolor('menu_1_3','#431874');" onmouseout="changeBGcolor('menu_1_3','#FFFFFF');">

Und wie gesagt danke das du geantwortet hast aber ich bin kein profi und es ist denk ich kein verbrechen vllt auch etwas dümmere fehler zu machen!??

toyde ·

Mein Tipp war der Bogen um das Ganze #paralyzed# .

RO_chBgColor ist ein TMENUITEM (und hat nichts mit deinem erwähnten RO zu tun), und berechtigt deinen Einwand bezüglich JavaScript. Da diese Syntax aber wirklich nur kompliziert ist, und ohnehin durch CSS ersetzt - und leichter verständlich ist - konformer auf Browsern läuft, sag ich's nochmals gerne: Ich würd RO und das RO_chBgColor sein lassen..
(Bei Interesse wie gesagt, die Referenz steht auch für offen.)

Arbeite mit HTML/CSS und deinem guten Anfang, für ACT/NO mit CSS-Klassen zu arbeiten. Damit wirst Du glücklich, und es gibt kein JS mehr, das Fragen aufwirft :p .

schönen Abend.

-June- ·

So, hab nun alles sehr gewissenhaftim css geändert ...also die reihenfolge!
leider ist immer noch alles so wie es vorher war. der fehler muss also woanders liegen.

toyde ·

der fehler muss also woanders liegen.

Kann Dir nicht helfen, sry. Wenn ich Dir was erkläre und vorbeirede, hat's wenig Sinn..

Lösch deine Zeilen mit RO/RO_chBgColor aus deinem TypoScript raus(steht noch immer in deinem Frontend-Quellcode). Danach solltest Du Dich einlesen, was CSS ist - dein CSS ist falsch, wenn es nicht greift.

grüsse

-June- ·

Wenn ich das mal kurz versuche zu verstehn dann kommt dabei raus:
RO ist keine TMENU Item eigenschaft?

wie löse ich dann mittels css ein hintergrund rollover?

und danke für den ratschlag aber ich weiss was css ist. das was ich ebnfalls weiss ist das man leider ur durch praxis lernt und das es normal ist fehler zu machen.

toyde ·
June schrieb

RO ist keine TMENU Item eigenschaft?

toyde schrieb

RO ist ein Objekt von GIFBUILDER.

Genau. Kein TMENU/TMENUITEM-Objekt.

June schrieb

wie löse ich dann mittels css ein hintergrund rollover?

und danke für den ratschlag aber ich weiss was css ist. das was ich ebnfalls weiss ist das man leider ur durch praxis lernt und das es normal ist fehler zu machen.

Habe Dir http://www.css4you.de als Tipp gegeben, da diese Thematik nichts mit TYPO3 zu tun hat. Das ist kein Vorwurf, sondern ein Schubs, in Richtung "bitte CSS-Referenz lesen".

Hovereffekt:
http://www.css4you.de/hover.html
Hintergrund:
http://www.css4you.de/background-color.html

toyde ·

Hi.

Stimmt. Bezgl. des TMENUITEM ist RO der Boolean für RO_chBgColor
. Was beachtet werden soll, über TMENU und RO keine Truetype-Schriftart, Schriftgrössen, etc. wie im GMENU zu definieren. Leider oft Stolperstein in einigen Threads gewesen.
Soviel als Ergänzung für künftige Leser.

grüsse

BastianBalthasarBux ·

Als weitere Ergänzung für alle zukünftigen Leser:

Grundsätzlich sind die CSS Effekte von mir bevorzugt. Ein Nachteil ergibt sich allerdings mit mehrstufigen tmenu_layers, da das 'triggerItem' mit einem normalen css-hover leider wieder die farbe in den ursprungszustand wechselt, wenn man in den darunterliegenden layer moused.

bei RO_chBgColor passiert das nicht, wenn man freezeMouseover=1 angibt.

Problem hierbei: eventuelle Background grafiken werden beim rein/rausmausen natürlich überschrieben.

Also wie man sieht, ein Menü ist sogar in typo3 immer wieder trickreich!

BastianBalthasarBux ·

Das mit dem Hintergrundbild hab ich aus gegebenem Anlass mal gleich rausgefunden.

Man kann in seine tmenu_layers.php die folgende funktion schreiben:

function addJScolorShiftFunction()	{
		$GLOBALS['TSFE']->additionalJavaScript['TMENU:changeBGcolor()']='
			function changeBGcolor(id,color) {	//
				if (document.getElementById && document.getElementById(id))	{
					var testUrl = "fileadmin";
					if ( testUrl == color.substring(0,9) ) {
						document.getElementById(id).style.backgroundImage = "url(" + color + ")";
					}
					else {
						document.getElementById(id).style.background = color;
					}
					return true;
				} else if (document.layers && document.layers[id]) {
			        document.layers[id].bgColor = color;
					return true;
			    }
			}
		';
	}

Die überschreibt dann die gleichnamige funktion in der Klasse tslib_tmenu

Hat zur Folge, dass wenn man RO_chBgColor im Typoscript Pfadangaben beginnend mit fileadmin übergibt, diese auch richtig per javascript in den style geschrieben wird.

Die derartige gemoddete tmenu_layers.php gibts dann in Kürze auf meiner Homepage (www.riccabona.info)

lg clemens

ps: keine garantie irgendwelcher art!!!!!!