1

slides.js jquery プラグインでスライドショーを作成しようとしています。

私が望むのは、最初のスライド (ビデオが埋め込まれている) を 7 秒間表示し、残りのスライドを各表示に 4 秒間表示することです。

これは私がこれまでに試したことです:

  $(function(){
      $('#slides').slides({
          preload: true,
          generateNextPrev: false,
          play: function(){
              if($('#slides').childNodes[2].css('display', 'block')){
                   return 7000;
              } else {
                   return 4000;
              } 
          }
      });
      $("#menu select").change(function() {
          window.location = $(this).find("option:selected").val();
      });
  });

最初は、スライドが変わるたびにこの関数が実行されると思っていました。この anon 関数が 1 回実行されて完了したことに気付きました。つまり、そのスライドが または でないdisplay: block;かどうかを確認するために戻ってきませんdisplay: none;。それは私が何をすべきか疑問に思います。

slides.js ページのドキュメントを確認しましたが、役立つものとして目立ったものは何もありませんでした。

TLDC: slides.js を使用して表示時間を可変にすることは可能ですか? そうでない場合、何を使用できますか?

4

2 に答える 2

2

これはslides.jsではなかなかできそうにないので、 Do It Yourself Sliderという自作のjQueryスライダーを紹介します。

このプラグインは、自分のニーズに合ったスライダーを自分で作成するための基盤です。

したがって、プラグインによって制限されないため、やりたいことは何でも実行できます。

あなたが求めているもののために私が作ったデモを見てください。最初のスライドは 7 秒続き、他のスライドは 4 秒続きます。

于 2012-09-14T16:12:59.917 に答える
0

私はこれを個人的に使用したことがないので、ベースから外れていたら申し訳ありません。

ここを見ると、play機能は「go」ボタンでpause停止しているように見えます。必要なのは、最初のplayイベントだけでなく、すべてのアニメーションで実行されるものです。animationStart代わりに試してください。

  $('#slides').slides({
      preload: true,
      generateNextPrev: false,
      play: 7000,
      animationStart: function(){
          if($('#slides').childNodes[2].css('display', 'block')){
               $("#slides").slides({ slideSpeed: 7000 });
          } else {
               $("#slides").slides({ slideSpeed: 4000 });
          } 
      }

アニメーションの直前に実行されるか (その時点で完璧に動作するか)、またはアニメーションの開始直後に実行されるかどうかは不明です。それ以降の場合は、使用してみてanimationComplete、次のスライドに基づいて時間を設定してください。

繰り返しますが、私はこれをやみくもに突き刺しているだけです。どのように見えますか?

于 2012-09-14T16:30:35.430 に答える