问答详情
源自:3-1 JS缓冲动画

缓冲动画的问题

我的代码错在哪里?

<title>无标题文档</title>

<style>

body,div,span{

margin:0;

padding:0;

}

#div1{

width:200px;

height:200px;

background:red;

position:relative;

left:-200;

top:0;

}

#div1 span {

width:20px;

height:50px;

background:blue;

position:absolute;

left:200px;

top:75pz;

}

</style>

<script>

//alert(Math.floor(3.98))

//alert(Math.ceil(3.45))

window.onload=function(){

var oDiv = document.getElementById('div1');

oDiv.onmouseover=function(){

startMove(0);

}

oDiv.onmouseout=function(){

startMove(-200);

}

}

var timer=null;

  function startMove(iTarget){

clearInterval(timer);

var oDiv=document.getElementById('div1');

   timer=setInterval(function(){

var speed =(iTarget-oDiv.offsetLeft)/10;

speed=speed>0? Math.ceil(speed):Math.floor(speed);

}

if(oDiv.offsetLeft==iTarget){

clearInterval(timer);

}

else{

oDiv.style.left=oDiv.offsetLeft+speed+'px';

}

},30)

</script>

</head>


<body>

<div id="div1"><span id="share">分享</span></div>

</body>

</html>

为什么总是显示这样的呢?

http://img.mukewang.com/581919530001ad5207860137.jpg

提问者:amily52000 2016-11-02 06:39

个回答

  • jw3631281
    2016-11-02 09:47:53
    已采纳

     function startMove(iTarget){

    clearInterval(timer);

    var oDiv=document.getElementById('div1');

       timer=setInterval(function(){

    var speed =(iTarget-oDiv.offsetLeft)/10;

    speed=speed>0? Math.ceil(speed):Math.floor(speed);

    }                               ------------这个花括号去掉

    if(oDiv.offsetLeft==iTarget){

    clearInterval(timer);

    }

    else{

    oDiv.style.left=oDiv.offsetLeft+speed+'px';

    }

    },30)

         《《   -----------------这个地方加上花括号

    还有上面的div样式里left:-200加上单位px;

  • 在路上_3498046
    2016-11-02 09:56:31

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    这段代码是得用二个尖括号包起来的!!!