Jense: Allgemeiner "DIV-Slide" funktioniert nicht ganz...

Beitrag lesen

Hallo Experten,
ich bin mal wieder am verzweifeln...
Ich brauche DIV's die sanft ein- bzw. ausrollen (z.B. für's Menu). Funktioniert!
Da diese DIV's zum Teil dynamisch entstehen, sollte der Code derart gestaltet sein, dass die dynamisch erstellten DIV's alle unabhängig voneinander "sliden" können. Und genau da ist mein Problem:
Mit meiner Lösung funktioniert dass zwar eigentlich unabhängig, aber eben nur eigentlich. Denn wenn ein DIV zum "sliden" gebracht wird, während ein anderer gerade noch am "sliden" ist, dann wird das "sliden" beim letzteren (also dem der schon im slide war) einfach unterbrochen, d.h. er wird nicht zu Ende geöffnet oder geschlossen. Hier der Code (ist nur ein Ausschnitt, aber für die SEHER unter Euch sollte das Problem darin zu sehen sein - hoffe ich):

function fMakeDiv(pTop)
{
 var vCo = vCo800Null.appendChild(window[pWinBez].document.createElement("div"));
 with(vCo)
 {
        id="";
 className = "clCo";
 style.top = pTop+"px";
 }
 vCo.SlideFlag = 1;
 vCo.SlideMin = 50;
 vCo.SlideMax = 400;
 vCo.oSlide = new oSlide5(vCo);
}

function oSlide5(pObjekt)
{
 this.pObj = pObjekt;
 this.DoSlide = function fSlide()
 {
  this.pObj.SlideFlag = this.pObj.SlideFlag * (-1);
  fSlideAufZu(this.pObj);

function fSlideAufZu(pObj)
  {
   window.clearTimeout(pObj.Slide);

if(pObj.SlideFlag > 0)
   {
    pObj.SlideStep = Math.ceil(((pObj.SlideMax-                                pObj.SlideMin) - pObj.offsetHeight) * 0.1);
   }
   else
   {
    pObj.SlideStep = Math.ceil
                                ((pObj.offsetHeight-pObj.SlideMin) * 0.1);
   }

pObj.style.height = pObj.offsetHeight +
                        pObj.SlideFlag * pObj.SlideStep + 'px';

fSlideAufZuTimer = function()
   {
    fSlideAufZu(pObj);
   }

if(pObj.offsetHeight != Math.max(pObj.SlideFlag *
                        pObj.SlideMax,0))
   {
    pObj.Slide = window.setTimeout
                                ("fSlideAufZuTimer()", 50);
   }
   else
   {
    window.clearTimeout(pObj.Slide);
   }
  }
 }
}

Wenn man also hiermit verschiedene DIV's erzeugt und dann z.B. irgendwie mit
einElement.onclick = function() {vCoAlert.oSlide.DoSlide();};
aufruft, dann funktioniert alles wie gewünscht, solange man "slides" an unterschiedlichen DIV's nicht gleichzeitig ausführt - dann wie gesagt slidet nur noch der zuletzt betätigte DIV, der andere bleibt dann sofort stehen! Ich habe wirklich schon alles nur erdenkliche (subjektiv) ausprobiert, ohne Erfolg. Ich hoffe einer von Euch weiss Rat! Wenn jemand ein Script kennt, das die Anforderungen erfüllt (und durchgängig korrekt funktioniert) wäre ich natürlich auch dankbar. Trotzdem würde ich auch gerne verstehen warum das nicht funktioniert.

Gruss Jense