简单做了一个图片抖动的方法。发现在其中声明变量来存数值和属性存数值最后结果不一样,看了好久,没看出问题出在哪里。请各位帮我解答一下。
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
从题主的代码来看,如果把pos
赋值给obj
中的一个属性的话,在抖动的过程中鼠标移动到元素上就会造成抖动偏移,因为每次执行shake
的时候obj.pos
属性都会根据当前top
刷新(虽然接下来就因为“正在抖动中”跳出了函数),因此会干扰到timer
中的取值,而使用局部变量则没有这个问题(timer
中使用的pos
变量始终是最初开始抖动时定义的那个变量)
修改的话你把if (obj.onOff) { return; }
提取到shake
函数开头就可以避免这个问题了。
添加回答
举报
0/150
提交
取消