js的setTimeout做简单移动元素位置,为嘛不动?

2025-12-05 15:58:59
推荐回答(2个)
回答1:

你需要在#testDiv设置position:relative,单纯的top和left不会让元素移动,还有你的时间可以设置大一点,你这个全部运行完也就500ms,看不出渐进效果。

为setTimeout赋值全局变量是为了需要时可以清除定时,当然你也可以不赋值全局变量。因为你要循环,推荐使用setInterval,代码如下:





我是测试div,点击下面的按钮就可以看到div缓慢移动。

缓慢移动div的位置



回答2:

楼主你好,这个是在点击按钮10毫秒后,div会移动。但只会移动一次,也就是1px,所以你基本上没感觉到。我知道你的意思是想每隔10毫秒移动1px直到移动50px。这样的话你要用setInterval这个函数而不能用setTimeout这个函数,setTimeout只会在延迟后执行一次,setInterval是每隔一定时间隔行一次,将函数的值赋给一个变量是为了可以调用clearTimeout(setInterval对应的是clearInterval)函数来清除这个定时器,如果你不需要清楚的话也可以不赋值。

相关问答