Ich hab sowas ähnliches mit Funktions-Boxen in den Sidebars. Das ganze macht man mit css und der Eigenschaft "display"
<div id="dontshow" style="display:none">
<p>Mein Inhalt</p>
</div
<div id="show" style="display:block">
<p>Mein anderer Inhalt</p>
</div
Nur das div "show" wird angezeigt. Jetzt braucht man nur noch etwas Javascript zum Umschalten (prototype.js und effects.js aus dem scriptacoulus Paket müssen geladen sein):
// get display-style of elements
function getElement(id) {
var el = $(id);
return el.style.display;
}
// Callback function for scriptaculous effects
function setElement (id, stil) {
var el = $(id);
el.style.display = stil;
set_phCookie (id, stil); // Merkt sich die Einstellung im Cookie
}
// Callback function for scriptaculous effects
function setElementBlock (obj) {
obj.element.style.display = 'block';
set_phCookie(obj.element.id, 'block');
}
// Callback function for scriptaculous effects
function setElementNone (obj) {
obj.element.style.display = 'none';
set_phCookie(obj.element.id, 'none');
}
// Frontend with scriptacoulus flavor to setElement
function SetElDisplay (id, stil) {
if (stil == 'block') {
new Effect.Appear (id, {afterFinish: setElementBlock});
} else {
new Effect.Fade (id, {afterFinish: setElementNone});
}
}
// switches the display-Style of elements
function SwitchElement(id1, id2) {
if (getElement(id1) == 'block') {
SetElDisplay (id1, 'none');
if (id2 != '') { SetElDisplay (id2, 'block'); }
} else {
SetElDisplay (id1, 'block');
if (id2 != '') { SetElDisplay (id2, 'none'); }
}
}
Alles anzeigen
Die Cookie-Funktion brauchst du nicht unbedingt. So schaltest du dann zwichen "dontshow" und "show" um:
<h3 onclick="javascript:SwitchElement('show', 'dontshow')"
style="cursor: pointer;">Hier Umschalten!</h3>
oder nur Show ein- und ausschalten.
<h3 onclick="javascript:SwitchElement('show', '')"
style="cursor: pointer;">Hier Schalten!</h3>
In Action kannst du das ganze auf meinem Blog sehen: http://helli.de
Die grauen Boxen links und rechts kann man ein- und ausklappen. Und auch die "Weitersagen"-Funktion ist so gebaut, nur ohne scriptacoulus Effekte.
Die Cookie-Spielereien brauchst du nur, wenn du das für den nächsten Besuch des Users speichern willst. Ich hab dazu noch ein paar nette php-funktionen, die den Cookie auslesen und die Daten schon beim Seitenaufbau berücksichtigen.
Hope that helps...
Helli