2009-09-01 18 views
0

リクエストは簡単ですが、Googleでは難しいです。ここでの要件は以下のとおりです。画像URLからスライドショーを作成するためのjqueryプラグイン

  • 私は
  • 私はが
  • 私はまともなスライドショープラグインは、この配列を消費し、私のスライドショーを提供したい任意のバッキングのhtmlを持っていけない画像のURLとJSの配列を持っている
  • スライドショーは、キーボードナビゲーション(ボーナス)を使用してサポートします

これまでのところ、多くの複雑なバッキングHTMLとcssが必要なスライドショープラグインが多数表示されていました。とにかくそれはスライドショープラグインによって変形されるために、このhtmlを構築することはやや愚かなようです。

また、私はこれらのスライドショープラグインの背後にあるコードのどれが悪いのか分かりませんでした。ああ!

+1

あなたの特定の要件については、あなた自身で書くことができます、あまりにも難しいはずはありません。 –

+0

プラグインの要件に従って出力を変更できないのですか?すなわち、o/pを配列からプラグインが消費するものに変換する。 –

+0

ええ、私はそれが悪いことであると思います。私はすでに簡単な方法があると思っていましたが、それはすでに私のために行われていましたが、よく書かれたスライドショーを修正すると、より良いものになるでしょう。 – mkoryak

答えて

3

ここで私は素早くまとめました(全くテストしていません - あなたが開発できるかもしれないアイデアのためのものです)。それは難しいことではありません。 Cycleと呼ば

var imgs = ['a.png', 'b.png', 'c.png']; 

function Slideshow(img_list, container) { 
    var self = this; 
    var $slides = []; 
    var current = { 'ith': 0, '$slide': null }; 

    function initialize() { 
     // Create the images 
     img_list.map(function (i) { 
      $slides.push($('<img>').attr('src', i).hide().appendTo(container)); 
     });  

     current.$slide = $slides[0]; 
     current.ith = 0; 

     // Initialize binds (jquery hotkeys or something) 
     $(document).bind('keydown', '>', function() { 
      // Do stuff 
      self.next(); 
     }); 

     $(document).bind('keydown', '<', function() { 
      // Do stuff 
      self.prev(); 
     }); 

    }; 

    this.indexTo = function (i) { 
     current.$slide.hide(); 
     current.$slide = $slides[i]; 
     current.ith = i; 

     if (current.$slide ==== undefined) { 
      if (i < 0) { 
       current.$slide = $slides[$slides.length - 1]; 
       current.ith = $slides.length - 1; 
      } else { 
       current.$slide = $slides[0]; 
       current.ith = 0; 
      } 
     } 

     // Effects or something else 
     return current.$slide.show(); 
    }; 

    this.next = function() { 
     return self.indexTo(current.ith++); 
    }; 

    this.prev = function() { 
     return self.indexTo(current.ith--); 
    }; 

    initialize(); 
}; 
+0

うわー。上を行き来する方法。 –

+0

私はそれが本当に実用的だとは思っていませんが、私はちょっと動機づけるように努力していました。プラグインが正しいルートだと仮定するのではなく、このことを学び、構造と完全性を理解することは良いことです。私は無数の__horrible__プラグインを見てきました。 彼はただ問題を評価し、彼が必要とするものに対処する必要があります。それが複雑すぎると、jQuery Cycleが最良の賭けになるかもしれません。そうでなければ、それを自分で構築するのは良い経験になるでしょう。 運が良かったです。 –

+0

ねえ、それを書いてくれてありがとう。コードは良いです!何が必要なのかといって、それが上手くいくようになるだろう。どうもありがとう。いくつかの代理人をあなたの方法で送る – mkoryak

0

http://www.designfloat.com/にある過去の記事/項目のいくつかをお試しください。あなたがやろうとしているもののかなりの数の優れたjQueryサンプルがあります。

キーボードナビゲーションについてよろしく、

ルネ・ピロン

1

知らん、私はthis similar questionに受け入れ答えはあなたを整理する必要があります。

EDIT:キーボードナビゲーションも含まれています。必要に応じて参照用にhow I implemented itを参照してください(Folioタブをクリックしてください)。

0

このjQueryプラグイン(つまりライトボックスタイプではありません)私が見た最も素晴らしいスライドショーの一つです。私は文書を見て、それはキーボードのサポートや画像の配列を使用するオプションがないようですが、動的に画像を追加する例があります。とにかく、あなた自身のために裁判官。

関連する問題