首页新闻找找看学习计划

定时器叠加造成的速度加快

0
悬赏园豆:15 [已解决问题] 解决于 2017-08-05 11:14

var timer=setInterval(function(){
......

}, 10)
$('li').hover(function() {
clearInterval(timer);}, 
function() {

//我知道这边是因为又重新创建了一个timer的定时器,才造成叠加效果
//为什么clearInterval(timer)清除不了,问了别人是因为清除的是第一个timer
//为什么?重新定义的定时器也叫timer了,timer不是被重新赋值了,为什么清除不了
//还有一个问题为什么定时器叠加了,速度会加快,可以说得详细点?
var timer=setInterval(function(){
......
}
}, 10)
});

js
oneStep12的主页 oneStep12 | 初学一级 | 园豆:142
提问于:2017-08-04 22:21
< >
分享
最佳答案
1

底下那个 var timer  去点   var  试试,
用了这个 var 是重新声明了一个局部变量,不是覆盖上一个

收获园豆:15
电磁魔王喵喵 | 小虾三级 |园豆:663 | 2017-08-05 10:19

我明白了,还有一个问题叠加的:我上网搜的解答:其实很好理解,你点击一次按钮,相当于叫一个人过去,每隔300毫秒把div移动一下;你点两次,就相当于让两个人去干同样的事情,都是每隔300毫秒移动一次div,但是,假设过了300毫秒,第一个人过去移动了div,第二个人也会过去移动div,就相当于每隔300毫秒移动两倍原来的距离 问题是: 为什么是相当于每隔300毫秒移动原来的两倍距离,定时器不是还有个时间,第一个定时器执行时间每隔300毫秒,在300毫秒没有执行完的时候再执行另一个每隔300毫秒移动的定时器,他们说是叠加了,但是时间是怎么处理的?有人说是时间差,那时间差又是怎么理解的?

oneStep12 | 园豆:142 (初学一级) | 2017-08-05 10:22

@oneStep12: 额。没懂你的描述

电磁魔王喵喵 | 园豆:663 (小虾三级) | 2017-08-05 10:50

@电磁魔王喵喵: 那你可以给我解释一下定时器叠加产生的速度加快?

oneStep12 | 园豆:142 (初学一级) | 2017-08-05 10:52

@oneStep12: 如果有两个定时器同时在执行的话,,他们不会互相影响的,每隔300毫秒指得是从他们自己声明开始过300毫秒,真实时间如果过了 300 毫秒,那么这两个都到了该执行任务时候,基本会在同一时刻操作这个div,相当于这一时刻移动了两次,

电磁魔王喵喵 | 园豆:663 (小虾三级) | 2017-08-05 11:03

@电磁魔王喵喵: 我明白了,真是太感谢,之前我就在纠结时间..... 谢谢

oneStep12 | 园豆:142 (初学一级) | 2017-08-05 11:08

@电磁魔王喵喵: 那个真实时间是??

oneStep12 | 园豆:142 (初学一级) | 2017-08-05 11:34

@oneStep12: 是我的描述有问题,,就是计算机时间

电磁魔王喵喵 | 园豆:663 (小虾三级) | 2017-08-05 12:16

@电磁魔王喵喵:  好

oneStep12 | 园豆:142 (初学一级) | 2017-08-05 12:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册