暂停执行
问题描述:
期间jQuery的效果我的网站有一些图标在鼠标发光,但我想它随机亮起时,没有人徘徊。暂停执行
现在我有了一段正确的代码,它会随机发光并在悬停发光,但如何使随机发光停止并在人物悬停在图标上后恢复。
谢谢。
答
因为我们还没有提供太多的信息,这就是我想这样做的:
- 创建发光图标
- 创建一个随机图标
- 创建一个定时器调用发光功能的其他功能的功能(间隔)以设定的时间间隔继续呼叫随机发光功能
- 附加一个图标的mouseenter事件,使其在启动时清除计时器并仅在该图标上调用发光。当鼠标悬停时,它启动一个新的计时器。 (定时器是全球的)
答
您可以使用.stop()
来停止任何现有的效果。
但是没有任何方法可以让恢复这些效果一旦你的悬停开始的附加效果完成了。
您必须重新启动第二个.hover()
回调中的“随机”发光。
编辑它可能是可能的,但是这是未经测试:
- 呼叫
.queue()
来得到当前的动画队列,并复制结果 - 呼叫
.stop()
删除所有这些 - 做你的新动画
-
.hover()
的“出”功能,重新从#1以上排队的项目
答
您可以检查,看看他们是否图标泛着你容光焕发之前:
$('.icon').hover(function() {
$(this).stop(true, true);
$(this).toggleClass('glow', true);
}, function() {
$(this).stop(true, true);
$(this).toggleClass('glow', false);
});
function randomglow(icon) {
if (!$(icon).hasClass('glow')) {
//your glow code here
}
}
谢谢Alnitak,你的建议很有道理。让我试试看。 – 2012-01-10 08:26:24
@JamesWong看到http://jsfiddle.net/alnitak/mS99A/ - 这是_mostly_工作。然而这是不可能恢复的“INPROGRESS”的动画,如果有什么人离开整个动画停止之后。您需要检查产生的队列,并且如果没有其他事项,请重新启动随机动画。 – Alnitak 2012-01-10 08:36:09