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()とは異なり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 に答える