问答详情
源自:7-1 JS动画案例

为什么回调函数在函数执行完成后不立刻执行,还需要再次鼠标经过div。(运动框架省略)

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title></title>
   <style>
       #div1{
           position: absolute;
           width: 100px;
           height: 100px;
           background: red;
           top: 60px;
       }
   </style>

</head>
<script src="Move.js"></script>
<script>
   window.onload=function(){
       var div=document.getElementById('div1');
       div.onmouseover=function(){
           startMove(this,{top:0},function(){
               startMove(div,{top:60});
           });
       }
   }
</script>
<body>
<div id="div1"></div>
</body>
</html>

提问者:一个人一首歌0 2016-10-14 13:47

个回答

  • Ken2016
    2016-10-14 14:16:54
    已采纳

    //判断是否有执行完动画
    flag = icur == json[attr] || false ;

  • Ken2016
    2016-10-14 14:15:35

    这个应该是运动框架的问题, 前面讲到同时运动的时候, 编写的框架, 里面对于所有对象运动是否结束只进行了如果没有完成就标识为false, 但是没有最终结束后将标识改为true, 所以后面的 flag 判断里的代码并没有执行, 而后续链式操作正好在里面, 无法执行

  • weibo_
    2016-10-14 14:05:53

    你在封装这个函数的时候startMove,设置回调函数这个参数了?并在函数体里面引用了?