最新回答 / 我要成为前端大姐大
因为当三个iCur==json[attr],flag==false,之后一次执行定时器时,会将flag变为true,则变成true状态,for遍历中的结果并不会被执行,等于空运行一次for遍历后,true被带到if(flag){if(fn){fn()}},中执行关闭定时器和fn(),如果吧if(flag){...}放在for遍历中,最后fn()会被执行三次,for遍历的特性
2016-08-22
还是写成oDiv.offsetLeft>=0 好点
万一你做练习时没想起div的盒子宽度是要算border的 一时兴起加个border:1px solid red;之类的css 这样盒子宽度是202 每次移动10 结果10次后才移到200,11次移到210了,210-202肯定不等于0了 这样盒子就奔跑不停了 …………
万一你做练习时没想起div的盒子宽度是要算border的 一时兴起加个border:1px solid red;之类的css 这样盒子宽度是202 每次移动10 结果10次后才移到200,11次移到210了,210-202肯定不等于0了 这样盒子就奔跑不停了 …………
2016-08-22
学完这趟课程,再来看现在的Jquery理解就容易多了, 也间接的知道Jquery是如何实现的,知道这么写的道理是为什么, 有了这样的思维,用起来也就不疑惑了,看来理解JS原生代码,对JS编程有很大的帮助, 这是自己的一点点小小感悟吧
2016-08-22
最后的 if (flag) { clearInterval(obj.timer); },这段代码我觉得应该放在里面,当width, height,opacity都到达了目标值后,speed等于0, 就不会在加,width,height,opacity的值也不会改变,如果 if(flag)代码在for中,那么立即就会停止,如果在for外面的话,要for遍历完以后才清除interval,当然这里其实问题不大,最多会多执行几次代码,结果也不会改变.乳沟要做到代码优化的话,放在里面要更好一些.
2016-08-21
美女老师,jion是这样的jion={"att1":"itarget1","attr2":"itarget2"};您那个是对象是有区别的。
2016-08-21
已采纳回答 / 小菜鸟飞
我觉得,因为他根本到不了0,,你的left是-468,一次加10,等到了-8的时候在加10,就是2,也不是0,就继续循环了,,你把left改成-460试试 ,应该就可以了
2016-08-21
这里也可以不用定义 obj.alpha=30, 其实可以在startChange()函数中写 var opacity = obj.style.opacity * 10; 这段代码, 每个div都有属于自己的opacity, 这样就没有共用同一opacity. 共用同一个opacity 就和共用同一个 timer一样的, 共用就会强着用. 就像吃饭,大家共用同一只碗, 你要,我也要用, 就只能开打了. 通过这里可以查看, 当共用同一个属性的时候,有没有什么副作用.
2016-08-21
已采纳回答 / 穿皮夹克的大熊
offsetLeft 为数值 不该+pxfunction leave(){ clearInterval(timer); timer = setInterval(function(){ var c = document.getElementById('yu'); if(c.offsetLeft <= -480){ clearInterval(timer); } else{...
2016-08-20
已采纳回答 / YuuyaRin
因为之前定时器的循环里,因为最后结果都是差零点几,结果最后导致多执行一次来满足target,然后最后运动的距离就超出了,负的向下取整,正的向上取就是为了弥补上除法除出来差的那零点几,然后就不会多执行那一次循环,就避免了超出和未运动到的情况
2016-08-20