Suche im Forum:
Suchen


Autor Nachricht
Beitrag03.03.2007 um 01:43 (UTC)    
Titel: JavaScript : Aufklappmenü für Texte

Einleitung:
Das hier ist eine Anleitung für ein Aufklappmenü für Texte etc. wie beim Windows Explorer zum Einbinden auf die eigene Homepage. HTML-Vorkenntnisse können nicht schaden.

Grundcode:
Zitat:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" /><style type="text/css">
<!--
#containerul, #containerul ul{
text-align:left;
margin:0; /* Removes browser default margins applied to the lists. */
padding:0; /* Removes browser default padding applied to the lists. */
}

#containerul li{
margin:0 0 0 30px; /* A left margin to indent the list items and give the menu a sense of structure. */
padding:0; /* Removes browser default padding applied to the list items. */
list-style-type:none; /* Removes the bullet point that usually goes next to each item in a list. */
}

#containerul .symbols{ /* Various styles to position the symbols next to the items in the menu. */
float:left;
width:16px;
height:1em;
background-position:0 50%;
background-repeat:no-repeat;
}
--></style><script type="text/javascript">
<!--
var temp, temp2, cookieArray, cookieArray2, cookieCount;
function initiate(){
cookieCount=0;
if(document.cookie){
cookieArray=document.cookie.split(";");
cookieArray2=new Array();
for(i in cookieArray){
cookieArray2[cookieArray[i].split("=")[0].replace(/ /g,"")]=cookieArray[i].split("=")[1].replace(/ /g,"");
}
}
cookieArray=(document.cookie.indexOf("state=")>=0)?cookieArray2["state"].split(","):new Array();
temp=document.getElementById("containerul");
for(var o=0;o<temp.getElementsByTagName("li").length;o++){
if(temp.getElementsByTagName("li")[o].getElementsByTagName("ul").length>0){
temp2 = document.createElement("span");
temp2.className = "symbols";
temp2.style.backgroundImage = (cookieArray.length>0)?((cookieArray[cookieCount]=="true")?"url(http://img.webme.com/pic/m/motorocker89/minus2.gif)":"url(http://img.webme.com/pic/m/motorocker89/plus2.gif)"):"url(http://img.webme.com/pic/m/motorocker89/plus2.gif)";
temp2.onclick=function(){
showhide(this.parentNode);
writeCookie();
}
temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild)
temp.getElementsByTagName("li")[o].getElementsByTagName("ul")[0].style.display = "none";
if(cookieArray[cookieCount]=="true"){
showhide(temp.getElementsByTagName("li")[o]);
}
cookieCount++;
}
else{
temp2 = document.createElement("span");
temp2.className = "symbols";
temp2.style.backgroundImage = "url(page.png)";
temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild);
}
}
}

function showhide(el){
el.getElementsByTagName("ul")[0].style.display=(el.getElementsByTagName("ul")[0].style.display=="block")?"none":"block";
el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(http://img.webme.com/pic/m/motorocker89/minus2.gif)":"url(http://img.webme.com/pic/m/motorocker89/plus2.gif)";
}

function writeCookie(){ // Runs through the menu and puts the "states" of each nested list into an array, the array is then joined together and assigned to a cookie.
cookieArray=new Array()
for(var q=0;q<temp.getElementsByTagName("li").length;q++){
if(temp.getElementsByTagName("li")[q].childNodes.length>0){
if(temp.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" && temp.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0){
cookieArray[cookieArray.length]=(temp.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block");
}
}
}
document.cookie="state="+cookieArray.join(",")+";expires="+new Date(new Date().getTime() + 365*24*60*60*1000).toGMTString();
}
//-->
</script>
<ul id="containerul">
<li><u><font size="3">Titel Thema 1</font></u>
<ul>Text 1</ul>
<p>
</li>
<script type="text/javascript">

initiate(); // This must be placed immediately after the menu in order to format it properly.
</script>

Erklärung des Grundcodes:
"width:16px" = die Breite eures Minus/ Plus Zeichens
"http://img.webme.com/pic/m/motorocker89/minus2.gif" = Bildadresse des Minus Zeichens
"http://img.webme.com/pic/m/motorocker89/plus2.gif" = Bildadresse des Plus Zeichens
Titel Thema 1 = Titel der 1. Kategorie die aufgeklappt werden soll
Text 1 = 1. Text der angezeigt werden soll, wenn man die 1. Kategorie aufgeklappt hat

Bsp. Bilder:







p.s.
Adresse/ URL eines Bildes herausfinden:
1. gehe zu Eigene Bilder verwalten
2. belieb. Bild mit der linken Maustaste auswählen
3. mit der rechten Maustaste auf das angezeigte Bild klicken
4. bei IE: Eigenschaften -> Adresse/ URL -> kopieren (strg + c) oder bei Mozilla: Grafikadresse kopieren
5. das ist die Ziel-Adresse für das Bild


weitere Themen/ Texte hinzufügen, also dann zwischen "</li>" und "<script type="text/javascript">" des 1. Themas/ Textes einfügen:
Zitat:
<li><u><font size="3">Titel Thema 2</font></u>
<ul>Text 2</ul>
<p>
</li>

Zitat:
<br> = Zeilenumbruch
<p> = Absatz


HTML-Codes einfügen geht so:


oder erst folgendes aktivieren, dann ist das Einfügen von HTML-Codes überall möglich:

Einstellungen -> Den HTML-Editor NICHT anzeigen? (Voraussetzung: du kannst HTML!) -> JA -> daten editieren


Resultat: http://www.motorocker89.de/News-_-Updates.htm#I




______________
*** Signatur entfernt ***


Zuletzt bearbeitet von motorocker89 am 23.07.2007, 17:02, insgesamt 20-mal bearbeitet
Beiträge der letzten Zeit anzeigen:   


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de