0

我正在使用 jRumble 插件 (http://jackrugile.com/jrumble) 在鼠标悬停时对菜单项进行隆隆声。但是,该插件没有设置隆隆声时间或隆隆声数量,因此它会不断地隆隆声直到鼠标退出。

我疯狂地尝试在悬停后 1 秒触发“stoprumble”,但没有运气:/

这就是我的代码现在的样子,它可以工作,但会持续发出隆隆声,直到鼠标退出。

$('#menu a img').hover(function(){
    $(this).trigger('startRumble');
    }, function(){
    $(this).trigger('stopRumble');
});

我需要它来做这样的事情(这不起作用):

$(this).trigger('startRumble').delay(1000).trigger('stopRumble');

知道如何完成一次隆隆声吗?提前致谢!

4

2 回答 2

1

.delay()与 a 不同setTimeout().delay()只需将“空动画”添加到对象动画队列中。它不会阻止代码执行。

让你的隆隆声只有一次:

$('#menu a img').mouseenter(function(){ 
    var self = $(this);
    self.trigger('startRumble');
    setTimeout(function() { 
        self.trigger('stopRumble'); 
    }, 1000);
});

在http://jackrugile.com/jrumble/上查看演示 19

于 2012-07-19T08:46:31.010 回答
0

在网站上,作者有一个例子列表;示例 19 几乎可以解决问题。

// This is the 'Demo 19' code, with 'click' replaced with 'hover'.
var demoTimeout;
$('#demo19').hover(function(){
    $this = $(this);
    clearTimeout(demoTimeout);
    $this.trigger('startRumble');
    demoTimeout = setTimeout(function(){$this.trigger('stopRumble');}, 1500)
});

尽管您可能需要进行一些实验,但这几乎可以满足您的要求。

希望这会有所帮助!

于 2012-07-19T08:48:49.900 回答