1

私はこれを何時間もいじっていましたが、うまくいきません。まず、私のサイトはすでに Prototype と Scriptaculous を使用しており、変更するには長い時間がかかります。

基本的に、jQuery Cycle プラグインに似たスライドショー効果を達成した後です。私はそれのほとんどを書きましたが、このハードルを乗り越えることはできません:

ユーザーが選択したスライドにスキップするコントロールボタンを押すことができるようにする必要があります。私の問題は、フェード/アピアリング効果が実行されている場合、オーバーラップが発生することです。

私はキューを使用しており、それらは独自のスコープにあります。私が見ている問題は、あるスライドのフェード効果と次のスライドの出現効果が別の機能であることです。つまり、ユーザーがコントロール ボタンをクリックして別のスライドに移動し、アニメーションがフェードと表示の間にある場合、次のサイクルはこれら 2 つの効果の間のキューに挿入されます。デフォルトでは、既存のキューの末尾に追加されますが、これで問題ありません。しかし、新しいフェードがインスタンス化されたときに表示が追加されていない場合、キューが台無しになります。

アニメーションが有効になっている場合は何も起こらないようにすることはできますが、それは私が求めている効果ではありません。スライドをクリックすると、何が起こっても効果的に停止し、次のスライドが表示されるようにしたいと考えています。

これは私が求めているものの例です: http://www.zendesk.com/

それが意味をなさない場合は申し訳ありません。説明するのは難しいものです。

4

2 に答える 2

0

ライブラリで何も見つからない場合は、次の質問のように DOM と一部の JS を使用できます: How do you make something to appear on a page using Javascript?

于 2010-02-13T15:58:57.637 に答える
0

昨夜、自分の問題を解決することができました。

私はすでにこれを試しましたが、正しく動作させることができませんでした。私が行ったのは、アニメーションが実行されている場合に true になるフラグ変数を追加したことだけです (var running = true; [または false])。

ユーザーがページャー ボタンをクリックしてスライドを移動した場合 (たとえば、スライド 1 からスライド 4 まで)、スライドが既に動いている場合 (var running == true)、コードはシステム内のキューに入れられたすべての効果を見つけます。それらを削除してから、すべてのスライドを非表示にします。次に、ユーザーの要求に応じて、スライド 4 への新しいサイクルを開始します。

ページャー ボタンをどれだけ速くクリックしても、シームレスに機能します。:)

于 2010-02-14T11:36:53.673 に答える