请把setInterval("qqq()",50)改为setInterval("qqq()",10)在看效果

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <script language="javascript">
    var canMove = true;
    function flyObject(obj)  //这里的Obj参数最好是DIV对象,而且要定义好宽和高
    {
    if(!canMove) return false;
    if(typeof obj != "object") return false;
    if(typeof obj.tagName != "string") return false; obj.style.display = "";
    var objWidth = obj.clientWidth;
    var objHeight = obj.clientHeight;
    var objTop = (document.body.clientHeight - objHeight) / 2;
    var objStartLeft = -objWidth;
    var midLeft = (document.body.clientWidth - objWidth) / 2;
    var endTop = -objHeight - 10; obj.style.position = "absolute";
    obj.innerText = obj.id + " objWidth:" + objWidth + ", objHeight:" + objHeight + ", objTop:" + objTop + ", objStartLeft:" + objStartLeft + ", midLeft:" + midLeft + ", endTop:" + endTop;
    obj.style.posTop = objTop;
    obj.style.posLeft = objStartLeft; moveTo(obj.id,midLeft,objTop,midLeft,endTop);
    canMove = false;

    }function moveTo(objID,Left, Top, NextLeft, NextTop)
    {
    var moveSpeed = 3;  //这里设置每次移动的距离,以像素为单位
    var trueWait = 1000;  //这里设置移动转向前的等待时间,以毫秒为单位
    var LeftFlag = true;
    var TopFlag = true; 
    var obj = document.all(objID);
    if(obj.style.posLeft < Left)
    {
    obj.style.posLeft += moveSpeed;
    if(obj.style.posLeft + moveSpeed > Left)
    LeftFlag = true;
    else
    LeftFlag = false;
    }
    if(obj.style.posLeft > Left)
    {
    obj.style.posLeft -= moveSpeed;
    if(obj.style.posLeft - moveSpeed < Left)
    LeftFlag = true;
    else
    LeftFlag = false;
    }
    if(obj.style.posTop < Top)
    {
    obj.style.posTop += moveSpeed;
    if(obj.style.posTop + Top > Top)
    TopFlag = true;
    else
    TopFlag = false;
    }
    if(obj.style.posTop > Top)
    {
    obj.style.posTop -= moveSpeed;
    if(obj.style.posTop - Top < Top)
    TopFlag = true;
    else
    TopFlag = false;
    } if(LeftFlag && TopFlag)
    {
    if(typeof(NextLeft) == "number" && typeof(NextTop) == "number")
    {
    setTimeout("moveTo('" + objID + "'," + NextLeft + "," + NextTop + ");",1000);
    }
    else
    {
    canMove = true;;
    return true;
    }
    }
    else
    {
    if(typeof(NextLeft) != "undefined" && typeof(NextTop) != "undefined")
    {
    setTimeout("moveTo('" + objID + "'," + Left + "," + Top + "," + NextLeft + "," + NextTop + ");",10);
    }
    else
    {
    setTimeout("moveTo('" + objID + "'," + Left + "," + Top + ");",10);
    }
    return false;
    }
    }
    </script>
    </HEAD><BODY onclick="flyObject(fly);">
    <div id="fly" style="width:230px; height:200px;background-color:#99CCFF;border:1 solid #336699;display:none;">asdfasdfasdfasdgasdg</div>
    </BODY>
    </HTML>
      

  2.   

    把下面这句
    setTimeout("moveTo('" + objID + "'," + NextLeft + "," + NextTop + ");",1000);
    改为
    setTimeout("moveTo('" + objID + "'," + NextLeft + "," + NextTop + ");",trueWait);
      

  3.   

    把我的回答再修改一下,以这个为准:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>移动</TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <script language="javascript">
    var canMove = true;
    function flyObject(obj)  //这里的Obj参数最好是DIV对象,而且要定义好宽和高
    {
    if(canMove == false) return false;
    if(typeof obj != "object") return false;
    if(typeof obj.tagName != "string") return false; obj.style.display = "";
    var objWidth = obj.clientWidth;
    var objHeight = obj.clientHeight;
    var objTop = (document.body.clientHeight - objHeight) / 2;
    var objStartLeft = -objWidth;
    var midLeft = (document.body.clientWidth - objWidth) / 2;
    var endTop = -objHeight - 10; obj.style.position = "absolute";
    obj.style.posTop = objTop;
    obj.style.posLeft = objStartLeft; moveTo(obj.id,midLeft,objTop,midLeft,endTop);
    canMove = false;

    }function moveTo(objID,Left, Top, NextLeft, NextTop)
    {
    var moveSpeed = 3;  //这里设置每次移动的距离,以像素为单位,数字越大移动越快
    var turnWait = 2000;  //这里设置移动转向前的等待时间,以毫秒为单位
    var LeftFlag = true;
    var TopFlag = true; 
    var obj = document.all(objID);
    if(obj.style.posLeft < Left)
    {
    obj.style.posLeft += moveSpeed;
    if(obj.style.posLeft + moveSpeed > Left)
    LeftFlag = true;
    else
    LeftFlag = false;
    }
    if(obj.style.posLeft > Left)
    {
    obj.style.posLeft -= moveSpeed;
    if(obj.style.posLeft - moveSpeed < Left)
    LeftFlag = true;
    else
    LeftFlag = false;
    }
    if(obj.style.posTop < Top)
    {
    obj.style.posTop += moveSpeed;
    if(obj.style.posTop + moveSpeed > Top)
    TopFlag = true;
    else
    TopFlag = false;
    }
    if(obj.style.posTop > Top)
    {
    obj.style.posTop -= moveSpeed;
    if(obj.style.posTop - moveSpeed < Top)
    TopFlag = true;
    else
    TopFlag = false;
    } if(LeftFlag && TopFlag)
    {
    if(typeof(NextLeft) == "number" && typeof(NextTop) == "number")
    {
    setTimeout("moveTo('" + objID + "'," + NextLeft + "," + NextTop + ");",turnWait);
    }
    else
    {
    canMove = true;;
    return true;
    }
    }
    else
    {
    if(typeof(NextLeft) != "undefined" && typeof(NextTop) != "undefined")
    {
    setTimeout("moveTo('" + objID + "'," + Left + "," + Top + "," + NextLeft + "," + NextTop + ");",10);
    }
    else
    {
    setTimeout("moveTo('" + objID + "'," + Left + "," + Top + ");",10);
    }
    return false;
    }
    }
    </script>
    </HEAD><BODY onclick="flyObject(fly);">
    <div id="fly" style="width:120px; height:80px;background-color:#99CCFF;border:1 solid #336699;display:none;">移动区域</div>
    点击页面开始移动。
    </BODY>
    </HTML>