javascript - JS的一个问题
本文介绍了javascript - 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是一个对象。
解决方案
top 应该是某个地方定义的一个变量,用来保存一个位置值。既然是别的人代码,有可能你抄的时候没抄到定义的那一段。
如果没有定义 top 这个变量,直接使用的 top 是 window.top
,表示顶层窗口(主要针对框架页面而言,如果没有框架,顶层窗口就是当前窗口),这个时候的 top
是不能参与 +
运算的,因为它是一个对象,不管用于数值型的 + 还是字符串连接都无意义(特殊情况除外,你这里不像是特殊情况)
这篇关于javascript - JS的一个问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文