2012-04-17 11 views
2

jQueryサイクルは、スライドショーがホバリングされているときにのみ実行されるようにしようとしています(組み込み機能とは逆です)。私がでてるのはここホバリングでjQueryサイクルを使用する

です:http://jsfiddle.net/zSBMU/

$(document).ready(function() { 

$('.slideshow').hover(
    function() { 
     $(this).cycle({ 
      fx:  'fade', 
      speed: 600, 
      timeout: 300, 
      pause: 0 
     }); 
    }, 
    function(){ 
     $(this).cycle('stop'); 
    } 
).trigger('hover'); 

});

初めてホバーすると、うまく動作します。しかし、同じものをもう一度ホバリングしようとすると、再びループするのではなく、1つのフェードを経るだけです。

アイデア?

グロスコードのいくつかを無視して、ここでかなり古いテーマで作業してください。

+0

こちらもコードを投稿してください。今から2年後にあなたと他の誰かを助けることです...あなたのフィドルがなくなった後。 –

答えて

2

「停止」を使用してサイクルを再作成しているので、オブジェクトに複数のサイクルが追加されています。

「一時停止」と「再開」を使用する必要があります。怒鳴る

例:

var cycleConfigured = false; 
$(document).ready(function() { 

    $('.slideshow').hover(
     function() { 
      if(cycleConfigured) 
       $(this).cycle('resume'); 
      else 
      { 
       $(this).cycle({ 
        fx:  'fade', 
        speed: 600, 
        timeout: 300, 
        pause: 0 
       }); 
       cycleConfigured = true; 
      } 
     }, 
     function(){ 
      $(this).cycle('pause'); 
     } 
    ).trigger('hover'); 

});​ 

変数cycleConfiguredは、それがすでにインスタンス化されたかどうかを確認するために、私たちのサイクルのプラグインを制御するために使用されます。代替であなたは$(document).ready()にそれを作成し、このようにそれを一時停止することができます。

$(document).ready(function() { 
    // configure the cycle plugin 
    $('.slideshow').cycle({ 
     fx:  'fade', 
     speed: 600, 
     timeout: 300, 
     pause: 0 
    }); 
    $('.slideshow').cycle('pause'); // pause it right away. 

    $('.slideshow').hover(
     function() { 
       $(this).cycle('resume'); // start playing. 
     }, 
     function(){ 
      $(this).cycle('pause'); // pause the slideshow. 
     } 
    ).trigger('hover'); 

});​ 

次にあなたがする必要があるすべては終わっ上での$(this).cycle('pause')$(this).cycle('resume')を使用しています。

私に知らせてください。

+0

ああ、私の愚かなので、おかげで束! – graygilmore

+0

唯一の質問は、1つのページに複数のスライドショーを表示すると、ここに競合があるかどうかわかりません。 – graygilmore

+0

You're Welsome :) '$(document).ready()'にそれらをすべて設定しても問題はありません。問題は "resource"の使用になります。サイクルはdomにいくつかの要素を追加します。唯一の** "ソリューション" **は、サイクルを殺してリセットすることですが、あなたが探しているアニメーションを持っていないでしょう。 使用するサイクルと画像の数はいくつですか? –