Jquery -当频繁地悬停多次时,元素仍然会摇晃很长时间
Jquery - When hovered multiple times frequently, element still shakes for a long time
当我离开我的容器鼠标反弹上下。但这里的问题是,当我连续(非常快地)这样做一段时间,然后停止这样做,它仍然摇晃很长一段时间。所以基本上我想让动画在我离开容器的最后一个鼠标时停止。PS -我已经试过$('.container').stop()
了。想象一下,当您频繁地将元素快速悬停时。(不让前一个动画完成)然后你突然停下来。所以动画也应该停止。但它没有!这是小提琴。http://jsfiddle.net/WKy56/
$('.container').mouseleave(function(){
doBounce($('.container'), 2, '10px', 50);
});
function doBounce(element, times, distance, speed) {
for(var i = 0; i < times; i++) {
element.animate({marginTop: '-='+distance}, speed)
.animate({marginTop: '+='+distance}, speed);
}
}
PSS -如果你不能回答或不能理解这个问题,请阅读下面的评论,至少不要投票反对。
$('.container').not(':animated').mouseleave(...
编辑:这应该是足够的:
$('.container').mouseleave(function(){
doBounce($('.container').not(':animated'), 2, '10px', 50);
});
我认为最好的解决方案是在元素上使用.finish(),因为它完成动画并且不会留下需要重置的不正确的上边距值。
$('.container').mouseleave(function(){
doBounce($('.container'), 2, '10px', 50);
});
function doBounce(element, times, distance, speed) {
element.finish();
for(var i = 0; i < times; i++) {
element.animate({marginTop: '-='+distance}, speed)
.animate({marginTop: '+='+distance}, speed);
}
}
相关文章:
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 谷歌地图需要很长时间才能在ie11中渲染
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- 如何在长时间执行JavaScript期间显示微调器
- 长时间轮询:每个浏览器中的通知
- 完整日历:如何支持一次点击和不长时间点击
- 如何使用 javascript 停止对 asp.net 进行正在进行的回发(长时间运行的执行)
- 为什么这个 AJAX 调用需要这么长时间
- 为什么这个正则表达式需要这么长时间才能执行
- 如何修复长时间运行的脚本
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- javascript秒表限制最长时间
- 长时间运行的脚本IE与Chrome/Firefox
- 使用新值循环 2000 个元素的数组时,浏览器更新元素需要很长时间
- 如何在长时间运行的事件中更新页面元素
- Jquery -当频繁地悬停多次时,元素仍然会摇晃很长时间
- 在长时间执行过程之前和之后使用Jquery更改元素css
- 添加元素后,DOM 需要很长时间才能更新