2011-12-28 7 views
0

これはたくさん質問されている質問ですが、私は今jQueryでこれを行う簡単な方法を望んでいます。 私がしたいのは、ユーザーからの新しい投稿を一度に1つずつ表示するdivがあることだけです。ソケットIOは新しいデータをリストにプッシュし、1つを除いてすべてが一度に隠されます。 x秒ごとに表示されるデータを変更する間隔があります。私がしたいのは、ユーザーがその上にマウスを乗せて、インターバルを一時停止し、マウスを離したときに中断したところから再開するときです。ホバー上のjQuery遅延コード? (最も簡単な方法)

<ul> 
<li class="current">List #1</li> 
<li>List #2</li> 
</ul> 

答えて

2

あなたが既に持っているコードを示すが、次はありませんそれを行うにはかなり一般的な方法である:

var pause = false; 

setInterval(function() { 
    if (pause) 
     return; 

    // your code to change the item here 

}, delay); 

$("selector for your element here").hover(
    function() { 
     pause = true; 
    }, 
    function() { 
     pause = false; 
    } 
); 

(おそらくすべてを持っている必要があります)上記のうちドキュメントの準備中です。

作業デモ:http://jsfiddle.net/N2uMA/

+0

これはうまく動作します。ありがとうございました。 (私はまだ私のウェブサイトでこの機能をコーディングしていない、私はちょうどこの考えを熟考していた) –

0

setIntervalを使用して、イメージをXミリ秒ごとに変更し、clearIntervalを使用してイメージを停止できます。

var interval = setInterval(<function>, <delay>); 

clearInterval(interval); 
1

私がやりたいことは、ユーザーが間隔を一時停止し、それの上に置いたときである、と彼らはマウスのうち、あなたはそれが間隔を一時停止中に再開したい場合は、

をオフに左履歴書をインターバルの中央(例えば、それは大きな間隔で、おそらく1秒以上)、code from this other question, showing how to interrupt and resume an interval exactly where it was left offを使用することができます。

私がやりたいすべてが、ユーザーからの新しい投稿を示してdiv要素を持っている時間

1つが他の質問からのコードを使用して、ここではaの上にチェーンをトリガーするためにいくつかのコードがあるさリスト、すべてが表示されるまで、各項目にcurrentを設定し、それをフェードイン:ここ

var currentTimer; 
var timeBetween = 500; 

function hideCurrentAndSetUpNext() 
{ 
    var current = $('ul li.current:last'); 
    current.fadeIn(); 

    var next = current.next(); 
    if(next != null) 
    { 
     next.addClass('current'); 
     currentTimer = new Timer(hideCurrentAndSetUpNext, timeBetween); 
    } 
} 

currentTimer = new Timer(hideCurrentAndSetUpNext, timeBetween); 

$('ul li').hover(
    function() { 
     currentTimer.pause(); 
    }, 
    function() { 
     currentTimer.resume(); 
    } 
); 

は、このコードを実証フィドルです:

関連する問題