开发者社区> 问答> 正文

JS的一个问题

animate:function(obj,attr,val)

{
       var d=1000;
       if(obj[attr+'timer']) clearInterval(obj[attr+'timer']);
       var start = parseInt(animation.css(obj,attr));
       //动画开始位置
       var space=val-start,
       //动画要运动的距离
       st=(new Date).getTime(),
       m=space>0? 'ceil':'floor';
  obj[attr+'timer']=setInterval(function()
  {
    var t=(new Date).getTime()-st;
    //运行时间
    if (t<d)
           {
      animation.css(obj,attr,Math[m](animation.easing['easeOut'](t,start,space,d)) +'px');
    }
    else
    {
      clearInterval(obj[attr+'timer']);
      animation.css(obj,attr,top+space+'px');
    }
  },20);
},

代码下面有个top+space+'px'这里的top不知道如何理解,虽然这是代码的一部分,但是其他地方都没有top这个变量。我测试了一下,top是一个对象。

展开
收起
杨冬芳 2016-06-21 11:11:03 1682 0
1 条回答
写回答
取消 提交回答
  • IT从业

    top 应该是某个地方定义的一个变量,用来保存一个位置值。既然是别的人代码,有可能你抄的时候没抄到定义的那一段。

    如果没有定义 top 这个变量,直接使用的 top 是 window.top,表示顶层窗口(主要针对框架页面而言,如果没有框架,顶层窗口就是当前窗口),这个时候的 top 是不能参与 + 运算的,因为它是一个对象,不管用于数值型的 + 还是字符串连接都无意义(特殊情况除外,你这里不像是特殊情况)

    2019-07-17 19:44:39
    赞同 展开评论 打赏
问答分类:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
23-Vue.js在前端...1506518547.pdf 立即下载
Vue.js 在前端服务化上的探索与实践 立即下载
Vue.js在前端服务化上的实践与探索 立即下载