DerMilchmann
Mitglied
Hallo liebe ;-) tutorials.de Community,
ich habe folgendes Problem: Bestimmt ist Euch, ich hoffe ich darf "EUCH" duzen, der Accordion Effekt von Mootools, jquery und inzwischen auch script.aculo.us bekannt. Diesen habe ich versucht "nachzubauen". Er sieht momentan so aus.
Die klasse invisible setzt die Höhe aller <ol>'s unterhalb der Klasse activepath auf height:0; overflow:hidden;
Der entscheidende Teil ist aber dieser hier:
in diesem Teil soll die Höhe Schritt für Schritt auf 100% gesetzt werden. Deswegen dachte ich, ich knall da einfach setTimeout(); rein mit nem Wert von ungefähr ner viertel sekunde bevor die for schleife weiter hochzählt. Was allerdings nicht funktioniert, warum auch immer.
Ich habe alles erdenkliche versucht und auch viel gegoogelt.
Habt Ihr vielleicht eine Idee und könnt mir helfen. BItte!
ich habe folgendes Problem: Bestimmt ist Euch, ich hoffe ich darf "EUCH" duzen, der Accordion Effekt von Mootools, jquery und inzwischen auch script.aculo.us bekannt. Diesen habe ich versucht "nachzubauen". Er sieht momentan so aus.
Code:
activepath = function() {
var sfEls = document.getElementById(menuelement).getElementsByTagName("a");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onclick=function() {
var liElements = this.getParent().getParent().getElementsByTagName("li");
for (var j=0; j<liElements.length; j++) {
if (liElements[j].className == 'activepath'){
liElements[j].className = liElements[j].className.replace(new RegExp("activepath\\b"), "").trim();
var olEls = liElements[j].getElementsByTagName("ol");
for (var k=0; k<olEls.length; k++){
if (olEls[k].className.indexOf('invisible') >= 0){
olEls[k].className = olEls[k].className.replace(new RegExp("invisible\\b"), "").trim();
}
}
}
}
this.getParent().className+=" activepath";
var olEls = this.getParent().getElementsByTagName("ol");
for (var j=0; j<olEls.length; j++) {
olEls[j].className+=" invisible";
if (this.getParent().className =' activepath') {
var oelss = this.getParent().getElementsByTagName("ol");
for (var k=0; k<oelss.length; k++)
{
for(var i=0; i<101; i++)
{
oelss[k].setStyle('height', i + '%');
//setTimeout ?
}
}
}
}
}
}
}
Die klasse invisible setzt die Höhe aller <ol>'s unterhalb der Klasse activepath auf height:0; overflow:hidden;
Der entscheidende Teil ist aber dieser hier:
Code:
if (this.getParent().className =' activepath') {
var oelss = this.getParent().getElementsByTagName("ol");
for (var k=0; k<oelss.length; k++)
{
for(var i=0; i<101; i++)
{
oelss[k].setStyle('height', i + '%');
//setTimeout ?
}
}
}
in diesem Teil soll die Höhe Schritt für Schritt auf 100% gesetzt werden. Deswegen dachte ich, ich knall da einfach setTimeout(); rein mit nem Wert von ungefähr ner viertel sekunde bevor die for schleife weiter hochzählt. Was allerdings nicht funktioniert, warum auch immer.
Ich habe alles erdenkliche versucht und auch viel gegoogelt.
Habt Ihr vielleicht eine Idee und könnt mir helfen. BItte!