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

来源:7-1 JS动画案例

一个人一首歌0

2016-10-14 13:47

<!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>

写回答 关注

3回答

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

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

    一个人一首歌...

    恩,谢谢了,解决了。 那次我按照老师的代码写的,就感觉有点怪怪的,以后学习还是不能马马虎虎蒙混过关啊。

    2016-10-16 14:21:11

    共 1 条回复 >

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

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

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

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

    一个人一首歌...

    回调函数参数设置了,判断执行完动画的时候判断语句有点问题,根据下面那位兄弟的帮助已经解决了。不过还是得谢谢你啊。

    2016-10-16 14:26:49

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题