jq停止循环定时器,鼠标放在div上为什么不能停止?该怎么写才能让它停下?急求啊

window.onload=function(){$('div').mouseover(function(){clearInterval(timer);timer=nul... window.onload=function(){
$('div').mouseover(function(){
clearInterval(timer);
timer=null;
})
}
var timer;
timer=setInterval(function(){
$('div').animate({top:"300px"},3000);
$('div').animate({top:0},0);
},0)
展开
 我来答
kasim416
2016-12-28 · TA获得超过707个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:297万
展开全部
你这个代码中实际上是成功的终止了定时器,但是由于定时器的执行时长是0,所以你的目标元素(div)会被不停的嵌套animate事件,一般来讲1分钟几百次是有的
当你中止定时器的时候,只是不再继续给目标元素嵌套animate事件,但是已经嵌套过的animate事件会被执行完才会中止。
你可以在clearInterval(timer);下面加一行$('div').stop(true);
意思是立刻中止目标元素上所有的动画事件,并停留在当前状态下
追问
非常感谢您的回答,我一会试试您说的方法,还有件事请教您,如果用了stop();那鼠标离开之后想让div继续运动应该怎么写呢,我的实际代码是个滚动图,想让鼠标放上去停止,挪开又继续移动...
lzs丶灬
2016-12-28 · TA获得超过632个赞
知道小有建树答主
回答量:881
采纳率:100%
帮助的人:522万
展开全部
```他说的是setInterval的0

你设长一点啊 来个1秒试试就知道了
timer=setInterval(function(){
$('div').animate({top:"300px"},3000);
$('div').animate({top:0},0);
},1000)
追问
我试了一下您给的建议。。。它不是放上去就停,而是把所有的animate动作全做完才停,您有没有办法让鼠标放上去就停呢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
限尚瘾K
2016-12-28 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:11.6万
展开全部
你这0秒执行一次,你想干嘛,
追问
他自己的animate有一个时间,我用的是那个时间,定时器写0也是可以动的,你有没有办法改改啊
追答
window.onload=function(){
$('div').mouseover(function(){
clearInterval(timer);
timer=null;
})
}
var timer;
timer=setInterval(function(){
$('div').animate({"height":"300px"},1000);
$('div').animate({"height":"50px"},500);
},1000)

我改变了div的高度,我没设定位,现在是完全可以停掉的。但是你setInterval 时间间隔为0 是不能停掉的 你试试看 模仿你要的效果试试吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式