57.时间版运动框架2

新建一个对象,把另一个对象的属性和处理过的属性值赋值给该对象

57.时间版运动框架2_第1张图片

 

 传进去json对象:

57.时间版运动框架2_第2张图片

先将 startJson speedJson声明成对象,for in 传进来的targetJson,分别给startJson speedJson赋值

57.时间版运动框架2_第3张图片

 

 57.时间版运动框架2_第4张图片

 

还可传回调函数(callback)

57.时间版运动框架2_第5张图片

 

57.时间版运动框架2_第6张图片 最后运用短路运算符,决定执不执行callback函数

 

  bind与call apply 的区别是 bind不能传递第二个参数,且不能执行,因此用变量来接受,然后采用变量() 的形式来执行

回调函数体内使用57.时间版运动框架2_第7张图片 此时this指向window

 

此时this指向dom,并且call会自执行函数

 

57.时间版运动框架2_第8张图片会弹出四次1,因为每个属性放在for in循环里,虽说时间运动框架时间一致,但是for in循环四次也是有个先后顺序,时间不可能完全一致,因此会打印四次。

57.时间版运动框架2_第9张图片 解决方法,把清除定时器与回调函数放在for in循环外面,放在时间判断里

此外,如果目标值是小于初始值的情况,那么判断条件 也不能是 if getStyle[dom,key]>targetJson[key] 也要换成是时间判断:

57.时间版运动框架2_第10张图片

 

 

实现效果:变成目标值后回到最初的样式:利用回调函数

57.时间版运动框架2_第11张图片57.时间版运动框架2_第12张图片 call 执行可以用this

 

 改进:

57.时间版运动框架2_第13张图片57.时间版运动框架2_第14张图片

 

 

单独把animation函数 放进js就是时间运动框架,用户自己决定有无回调函数,以及什么样的回调函数。

 

你可能感兴趣的:(57.时间版运动框架2)