Vorlage Diskussion:Ausklappen2

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen

Damit die Vorlagen Vorlage:Ausklappen2 und Vorlage:Ausklappen3 funktionen, müsste folgendes ergänzt werden. -- Grüße J* 23:34, 27. Jan 2008 (CET)

Ich hab' das mal beides ergänzt. Funzt alles super ... getestet in Firefox2 und IE7. Einziger Haken: die Klick-Kats und Sonderzeichen sind jetzt unter dem Bearbeiten-Fenster (so wie früher?). Überschneiden sich da irgendwelche Klassen? Blick' gerade nicht durch.
Trotzdem: vieles groß DANKE! --WiMu 11:00, 28. Jan 2008 (CET)
Super! Das sieht nach harter Arbeit aus... Danke an alle Java- und sonstigen Kümmerer sagt das Schachtelkamel 12:47, 28. Jan 2008 (CET)
Im Monobook.css hatte ich eine Klammer vergessen (die geschweifte ganz am Ende) - die noch mit rein, und dann geht das auch mit den Kats wieder --J* 13:44, 28. Jan 2008 (CET)
Mit Firefox geht es bei mir, leider bin ich mit Safari aufgeschmissen, da rührt sich nix bei Klick und die KATs hängen bei mir trotz refresh des Browsers (bei Safari) auch noch unten drunter … WiKa 13:47, 28. Jan 2008 (CET)
Hab die fehlende Klammer in der Monobook.css ergänzt. Im FF funzt jetzt alles prima. BTW: Safari ist doch eher was für die Jungs mit den kleinen Geschlechtsorganen ;) -- Ameise 14:06, 28. Jan 2008 (CET)
… ja deshalb kann ich nicht darauf verzichten … kann mir denn geholfen werden oder brauch ich einen GRÖßEREN?¿? *g* WiKa 14:49, 28. Jan 2008 (CET)
Ich hab grad noch ein paar Änderungen [1] vorgenommen, um ein Linkproblem zu beheben - könnte das bitte wieder irgendwer übertragen? --J* 17:03, 28. Jan 2008 (CET)

Monobook.css

.klapp {
	cursor: pointer;
}
span.klapp {
	text-decoration: none;
	color: #002bb8;
	background: none;
	}

span.klapp:hover {
	text-decoration: underline;
}

Monobook.js

// ================================================================================
// Ein- und Ausblenden per Javascript

// mit den folgenden Funktionen lässt sich ein div-Konstrukt in ein Einblende-Ausblende-Ding verwandeln
//
// Variante 1 (Klick irgendwo blendet ein oder aus):
//	<div class="klapp">
//		<div class="klapp_t">Titel im ausgeblendeten Zustand</div>
//		<div class="klapp_e">Titel im ausgeblendeten Zustand</div>
//		<div class="klapp_i">Einzublendender Inhalt</div>
//	</div>
//
// Variante 2 (ein- und ausblenden nur mit Links):
//	<div class="klapp_x">
//		<div class="klapp_t">Titel im ausgeblendeten Zustand mit <span class="klapp">Einblendelink</span></div>
//		<div class="klapp_e">Titel im ausgeblendeten Zustand mit <span class="klapp">Ausblendelink</span></div>
//		<div class="klapp_i">Einzublendender Inhalt</div>
//	</div>

function ausklapp( element )
{
	var klapp_i = null;
	var klapp_e = null;
	var klapp_t = null;

	for (i in element.childNodes)
	{
		if( element.childNodes[i].nodeType == 1 )
		{
			if ( element.childNodes[i].className == "klapp_i" )
				klapp_i = element.childNodes[i];
			else if ( element.childNodes[i].className == "klapp_t" )
				klapp_t = element.childNodes[i];
			else if ( element.childNodes[i].className == "klapp_e" )
				klapp_e = element.childNodes[i];
		}

		if ( klapp_i && klapp_t && klapp_e )
			break;
	}

	if( klapp_i.style.display != "none")
	{
		klapp_i.style.display = "none";
		klapp_e.style.display = "none";
		klapp_t.style.display = "block";

	}
	else
	{
		klapp_i.style.display = "block";
		klapp_e.style.display = "block";
		klapp_t.style.display = "none";
	}

}

// Diese Funktion weist einem Objekt einen Event-Handler zu.
// Argumente:	objekt - das Objekt
//		onEvent - ein event, z.b. "click" (ohne das "on", kleingeschrieben, als String)
//		funktion - ein Pointer auf die aufzurufende Funktion
//		captionMode - falls es keinen speziellen Grund gibt, einfach auf false setzen
function addEvent(objekt, onEvent, funktion, captionMode )
{
	if (objekt.addEventListener)
	{
		objekt.addEventListener(onEvent, funktion, captionMode);
		return true;
	}
	else if (objekt.attachEvent)
	{
		var ret = objekt.attachEvent("on" + onEvent, funktion);
		return ret;
	}
	else
	{
		return false;
	}
}

function getKlappDiv( obj )
{
	while ( obj && obj.parentNode && obj.className != "klapp_x" )
		obj = obj.parentNode;

	return obj;
}

// Event-Handler für alle class="klapp"-Objekte zuweisen
function makeAusklapp()
{
	// klapp-div-Rahmen
	var a = document.getElementsByTagName("div"); 
	for ( div in a )
	{
		if ( a[div].className == "klapp" )
		{
			//Leider nicht IE-Kompatibel:
			//var f = function () { ausklapp(this) };
			//addEvent( a[div], "click", f , false );
			//stattdessen:

			a[div].onclick = function () { ausklapp(this);}
		}
	}

	// klapp-spans-Rahmen als Link-Ersatz
	var a = document.getElementsByTagName("span"); 
	for ( span in a )
	{
		if ( a[span].className == "klapp" )
		{
			a[span].onclick = function () { ausklapp(getKlappDiv( this ));}
		}
	}

}

// makeAusklapp() nach Laden des Fensters ausführen!!
addEvent( window, "load", makeAusklapp, false );

*zweckendfremd*

nur mal so nebenbei ... funktioniert noch nicht 100%ig (man muss 2x klicken am Anfang) ... aber *großeaugenmach*

--WiMu 13:21, 28. Jan 2008 (CET)

Würde ich so lösen:

--J* 14:41, 28. Jan 2008 (CET)

jupp, ist mir im nachinein auch aufgegangen, dass man beides in den Titel stopfen sollte ... lustig ist, dass der Text hier einmal rechts, einmal drunter angezeigt wird, weil die Ka-Mel-Oh!-Vorlage per default left floatet :-) --WiMu 15:09, 28. Jan 2008 (CET)