2012-01-28 8 views
1

私はいくつかの異なるjQueryスライドショーで作業しています。訪問者がスライドを見て読んだら、その情報は役に立たない。例としてjQuery Cycleを使用して、訪問者が「スライド2」にナビゲートした後、「スライド1」を削除するにはどうすればよいですか。表示した後にスライドショーからjQueryスライドを削除します

スライドを削除するためにポップアップやタイマー機能を使用するのではなく、このメソッドを使用するのが大好きです。

どのような考えですか?

+1

あなたはあなたのコードをしてください投稿することができますか? – mrtsherman

+0

+1コードを入力してください。 – redronin

+0

私はコードを持っていません。ただの理論の質問。 – user1161032

答えて

0

が本当にうまく私の知る限り、これを行うための方法はありません。 jQuery Cycleプラグインは、それがトグルするすべての要素とともに呼び出されると初期化されます。あなたがページャーを使用していた場合のように、削除後最初に何が起こるかのように、考慮すべき他の分岐があります。私はあなたの最善の策は、標準のjQueryアニメーションエフェクトを使用し、コールバックであなたのスライドショーを開始することだと思います。

ここに2つの解決策があります。まず、コールバックで自分自身を呼び出すjQueryサイクルが消滅してから再起動します。

http://jsfiddle.net/RQapW/2/

$('div').cycle({ 
    timeout: 500, 
    after: myFunction 
}); 

function myFunction(currSlideElement, nextSlideElement, options, forwardFlag) { 
    console.log(currSlideElement.src + ' : ' + nextSlideElement.src); 

    //if we are on the second slide then remove the first one and restart slideshow 
    if (currSlideElement == $('img')[0] && nextSlideElement == $('img')[1]) { 
     $('div').cycle('destroy'); 
     $(currSlideElement).remove(); 
     $('div').cycle({ 
      timeout: 500, 
     });  
    } 
} 

ただ、一般的なjQueryのアニメーション効果を使用しています。

http://jsfiddle.net/RQapW/

$('img.first').load(function() { 
    $(this).fadeOut(5000, function() { 
     $(this).remove(); 
     $('body').cycle({timeout: 500}); 
    }) 
}); 
関連する問題