用js源码做出缓动效果,关于for循环和settimeout

JavaScript010

用js源码做出缓动效果,关于for循环和settimeout,第1张

因为你定义了200个定时器

从第一个到最后一个定时器

每个休息的时间是i的25倍

而i从0到200改变

因此

定时器的休息时间越来越久

于是看得到移动的效果

不然就一起移动了,看不到效果,因为都是最后的那个200

<div id = "lala" style="width: 100pxheight: 100px"></div>       //定义一个div

 

 

<script>

var i=-1     //定义一个量来做显示数字

var u=1000     //定义一个变量来做递增速度

var key=true

function a(){

   if(i == 10 || key == false){

      if(i == 10){

    i--

key = false

u = u + 100 //速度每次延迟一毫秒

document.getElementById("lala").innerHTML = i

setTimeout(function(){a()},u)

  }else if(i == 0){

    key = true

u = 1000

setTimeout(function(){a()},u)

  }else{

    i--

document.getElementById("lala").innerHTML = i

u = u + 100 //速度每次延迟一毫秒

        setTimeout(function(){a()},u)

  }

   }else{

      i++

      document.getElementById("lala").innerHTML = i

      if(i == 10){

         u = 1000

      }else{

         u = u + 100  //速度每次延迟一毫秒

      }    

      setTimeout(function(){a()},u)

   }

}

window.onload = function(){

     a()

}

</script>

亲测可用啊啊啊啊啊啊啊啊啊!!!!!!!!!