DOM动画效果

  1. 让一个元素从左至右进行运动
  1. <div id="box"></div>
  1. var box = document.getElementById("box");
  2. var t = null;
  3. t = setInterval(function(){
  4. })

运动的终止条件

运动的三要素

  1. 起始点

一个运动的起始点其实就是当前元素的位置,我们通过API获取当前元素的位置,让这个位置作为运动的起始。

  1. 目标
  2. 速度

DOM动画效果封装

单属性运动框架:

  1. function move( ele , attr , target){
  2. // 1. 关闭开启定时器;
  3. clearInterval( ele.timer );
  4. ele.timer = setInterval( function(){
  5. // 2. 计算速度;
  6. if(attr === "opacity"){
  7. var iNow = parseInt(getComputedStyle(ele)[attr] * 100); //0 ~ 100
  8. }else{
  9. var iNow = parseInt(getComputedStyle(ele)[attr]); //100
  10. }
  11. var speed = (target - iNow) / 10;
  12. // 3. 速度取整;
  13. if(speed > 0){
  14. speed = Math.ceil(speed);
  15. }else{
  16. speed = Math.floor(speed);
  17. }
  18. if(attr === "opacity"){
  19. ele.style[attr] = (iNow + speed) / 100 ;
  20. }else{
  21. ele.style[attr] = iNow + speed + "px";
  22. }
  23. // 4. 终止条件;
  24. if(iNow === target){
  25. clearInterval(ele.timer);
  26. }
  27. } , 50)
  28. }

多属性运动框架 (拓展)

  • 多属性运动框架