Javascript 复制和更改函数

Javascript 复制和更改函数,javascript,javascript-events,Javascript,Javascript Events,我这里有这个代码: function slideDown(){ //get the element to slide var sliding = document.getElementById('slideDiv'+x); //add 1px to the height each time sliding.style.height = parseInt(sliding.style.height)+5+'px'; t=setTimeout(slideDow

我这里有这个代码:

function slideDown(){
    //get the element to slide
    var sliding = document.getElementById('slideDiv'+x);

    //add 1px to the height each time
    sliding.style.height = parseInt(sliding.style.height)+5+'px';
    t=setTimeout(slideDown,15);
    if (sliding.style.height == "401px"){clearTimeout(t);}
}
它获取元素
slideDivx
,并增加其高度,直到它达到
401px

我有20个
div
s(每个称为
slideDiv1
slideDiv2
,…),我想让div 10启动,然后当它的高度达到大约
100px
时,我想让9和11启动,依此类推

我每次都尝试
setInterval
并增加
x
,但这不起作用,因为它会停止上一个
div
动画,并在完成之前移动到下一个。我想那是因为我改变了这个函数,对吗

我想知道的是,我是否必须为每组
div
s复制该函数,或者我是否可以自动执行该操作


我必须能够用本机JavaScript而不是jQuery来完成这一切,因为这是一个大学项目。

听起来你只需要用一个参数创建slideDown,然后在数组中发送元素集,如下所示:

 var elementIntervals = [];
 function animateElements(elementArray)
 {
     for(var j = 0; j < elementArray; j++)
     {
         (function(element, index)
         {
             elementIntervals[index] = setTimeout(function()
             {
                 slideDown(element, index);
             }, 15 + (100 * index));
         })(elementArray[j], j);
     }
 }

 function slideDown(sliding, index)
 {
     sliding.style.height = parseInt(sliding.style.height)+5+'px';

     if(sliding.style.height == "401px")
        clearTimeout(elementIntervals[index]);
     else
        elementIntervals[index] = setTimeout(function()
        {
            slideDown(sliding, index);
        }, 15);
 }
var elementinterval=[];
函数动画元素(元素数组)
{
对于(var j=0;j
如果你使用段落,你的问题更容易理解:)大学的东西=>大学的东西??在这种情况下,你不应该自己做,我们可以指出你代码中的错误。。用你现在拥有的东西创建一个JSFIDLE哦,哇,哈哈,我可能已经咬得比我在这里能咀嚼的多了一点,我仍然是一个面条。谢谢你,不过,我会有一个在整理这个尝试,看看我如何得到
slide.style.height==“401px”
建议更改为
parseInt(slide.style.height,10)>=401
,以防增量高度被修改为不能精确生成401的值