最赞回答 / 彭若飞
自己搞明白了!!d.style.width=200px 这样的写法中,d.style.width返回的字符串中有px,只能用来被赋值不能用来获取值,而d.offsetWidth和d.clientWidth返回的字符串中么有px可以用parseInt()包起来转换成整数!!!!!!!!!!
2016-04-21
已采纳回答 / 彭若飞
(iTarget-obj.offsetWidth)这个里面 obj.offsetWidth实在不断变化的,iTarget不变,他们两的差会由大到小,除以8的商也会由大到小,这就让speed速度有个递减。
2016-04-21
已采纳回答 / csusun
var i = true;这句话放在定时器里面 for循环前面 。因为flag如果定义在定期器外,flag只执行了一遍,当循环了一次后,flag变成了false就不会再改变了。 flag一直都是false,就无法关闭定时器和执行下一个函数了。
2016-04-20
最新回答 / 孖亽睂
function startMove(obj,json,fn){ clearInterval(obj.timer); obj.timer = setInterval(function(){ for (var attr in json){ //1.取当前的值 var icur = 0; var flag = true;//假设所有的运动都到达目标值 if(attr == "opacity"){...
2016-04-19
已采纳回答 / 慕的地1208773
首先,else要放在for循环外面,否则,一旦某一个attr达到目标值,即icur==json[attr]成立,就完成了else的判断.会运行else的代码.其次,设立标杆的目的是为了方便取值,为else里面的代码进行成立与否的判断!!在for循环里面,程序会进行分次判断,有几个attr就会判断几次,只要有一个false,返回值就是false,如果不设立标杆,会出现某次是true,某次是false的结果,无法进行后面的else判断.即只要有一个attr达到目标值,icur==json[attr]的等式就会...
2016-04-18
已采纳回答 / 我懒得说什么
startAct(this,"height",100,function(){ //alert(1); startAct(this,"width",400); });你这里的对象参数第二个不能为this,第二个this是函数,不是li你可以var _this = this;startAct(_this,"height",100,function(){ ...
2016-04-18