登风 2015-07-07 02:58 采纳率: 100%
浏览 1508

DOM编程艺术课本中实现动画函数的一个问题

 function moveElement(elementID,final_x,final_y,interval){   
    //alert("moveElement");   
    i++;   
    if(!document.getElementById) return false;   
    if(!document.getElementById(elementID)) return false;   
    var elem = document.getElementById(elementID);   
//  alert(elem.style.left);   
//  if(elem.movement){   
//      clearTime(elem.movement);   
//  }   
    if(!elem.style.left){   

        elem.style.left = "0px";   
    }   
    if(!elem.style.top){   
        elem.style.top = "0px";   
    }   

    var xpos =parseInt(elem.style.left);//alert(xpos);   
    var ypos =parseInt(elem.style.top);//alert(ypos);   
    if(xpos==final_x&&ypos==final_y){   
        //alert("true");   
        return true;   
    }   
    //alert("xpos="+xpos+"final_x="+final_x);   
    if(xpos<final_x){   
        var dist = Math.ceil((final_x-xpos)/10);   
        xpos=xpos+dist;   
    }   
    if(xpos>final_x){   
        //alert("xpos="+xpos+"final_x="+final_x);   
        var dist = Math.ceil((xpos-final_x)/10);   
        xpos=xpos-dist;   
        //alert("xpos="+xpos+"dist="+dist);   
    }   
    if(ypos<final_y){   
        var dist = Math.ceil((final_y-ypos)/10);   
        ypos=ypos+dist;   
    }   
    if(ypos>final_y){   
        var dist = Math.ceil((ypos-final_y)/10);   
        ypos=ypos-dist;   
    }   
    elem.style.left = xpos + "px" ;//alert(xpos);   
    elem.style.top  = ypos + "px" ;   
    //alert(Math.abs(xpos));   
    var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";   
    elem.movement = setTimeout(repeat,interval);   
}  

repeat怎样理解啊,求赐教

  • 写回答

2条回答 默认 最新

  • danielinbiti 2015-07-07 05:10
    关注
     var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";   
    elem.movement = setTimeout(repeat,interval);   //settimeout的第一个参数是function,而且需要字符串括起来。repeat就是一个function方法的字符串。
    
    http://www.jb51.net/article/35535.htm
    
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容