var pra=document.getElementById("p");
function styleW(praW,max,min){
if(praW>min && praW<max){ praW--; pra.style.width=praW+"px"; setTimeout(styleW, 10); }
}
styleW(500,800,300);就是想实现当praW在min-max之间时,实现动画效果,但发现不起作用。

解决方案 »

  1.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>无标题页</title>
    </head>
    <body>
    <div id="p" style="height:400px;background:blue">
    sdsd
    </div>
     <script>
    var pra=document.getElementById("p");
    function styleW(praW,max,min){
        if(praW>min && praW<max){ praW--; pra.style.width=praW+"px"; setTimeout("styleW("+praW+","+max+","+min+")", 10); }
    }
    styleW(500,800,300);
     </script> </body>
    </html>
      

  2.   

    setTimeout("styleW("+praW+","+max+","+min+")", 10);
    =====================================================
    为什么setTimeout(styleW,10)不可以? styleW在这里面不就是代表这个函数指针吗?
      

  3.   

    setTimeout(styleW, 10)
    setTimeout(”styleW“, 10);这里冒似加引号pra(这在哪声明的).style.width=praW+"px";
      

  4.   

    在这个例子中setTimeout(styleW, 10),setTimeout("styleW", 10),setTimeout(styleW(), 10),setTimeout("styleW()", 10)都是不行的,甚至还会报错。
      

  5.   

    setTimeout("test()",1000);可以用setTimeout(test,1000);
    但这指的是没参数的情况
    LZ你的是需要参数的
      

  6.   

    函数中的参数是一直在变的,所以你每次调用这个函数都要传入新的参数,你可以考虑把参数设成全局变量,这样初始赋值后就可以了。一下为参考,希望对你有帮助!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>无标题页</title>
    </head>
    <body>
    <div id="p" style="height:400px;background:blue">
    sdsd
    </div>
    <script>
    var pra=document.getElementById("p");
    var praW,max,min;
    function styleW()
    {
        if(arguments.length>0)
        {
    praW=arguments[0];
    max=arguments[1];
    min=arguments[2];
        }
        if(praW>min && praW<max)
        { 
    praW--; pra.style.width=praW+"px"; 
    setTimeout(styleW, 10); 
        }
    }
    styleW(500,800,300);
    </script> </body>
    </html>
      

  7.   

    var pra=document.getElementById("p");
    function styleW(praW,max,min){
        if(praW>min && praW<max){ praW--; pra.style.width=praW+"px"; setTimeout(function(){styleW(praw, max, min);}, 10); }
    }
    styleW(500,800,300);这样应该可以,你的调用方式未传入参数。