カルーセルモジュール:YUI 3ギャラリーで
中| 11:53 2010年12月13日は、ゴパルVenkatesanとファビアン·フランクによって午前の開発 、 YUI 3ギャラリー | 16コメントカルーセルとは何ですか?
カルーセル·コントロールは、オーバーロードされたページ領域内に垂直または水平に配列のようなオブジェクトのセットの中で閲覧するためのウィジェットを提供します。 "カルーセル"のメタファーは、フィルム写真の時代には、スライドカルーセルへの類推から派生して、カルーセル·コントロールは、コンテンツのすべてのブロックを介して連続的な、円形のナビゲーションを可能にすることにより、この比喩に忠実度を維持することができます。
カルーセルは、あなたに "過負荷"ページ上のスペースを、追加のコンテンツを発見し、ナビゲートするユーザーのために簡単に、直感的なメカニズムを提供しながら、そのサイズ内に収まるよりも、その空間のためのより多くのコンテンツを提供できるようにウィジェットの家族の一員です。 。 アコーディオン、タブ、ツリーとScrollViewsは、このジャンルの他の例である。
なぜ、まだ別のカルーセルコントロール?
YUI 3は、堅牢で機能豊富なカルーセル(私たちが持っているとして必要YUI 2 )。 このカルーセルの設計目標は、スリムでクリーンな作りを生かして、プラグインを介して追加の構成を追加しましたYUIの3 '軽さとスピードを維持するためにモジュール化の本質的なサポートしています。
YUI 3ウィジェットフレームワーク
YUI 3を使用してカスタムのウィジェットを書くことの最大の利点の1つは、ウィジェット·フレームワーク(:ウィジェットフレームワークの詳細でユーザーガイド 、 ビデオ導入の深さで )。 比較YUI 2.8.2のカルーセルを私にYUI 3ギャラリーカルーセル 、YUI 3のバージョンは、リーンとエレガントです。 ウィジェットの属性の共通セットを提供する基盤を提供することに関して、重い物を持ち上げる、統制のとれたライフサイクル、プログレッシブ·エンハンスメントのサポートなどの大部分はWidgetクラスが付属しているためです。
YUI 3ウィジェットのフレームワークは、UIの更新方法の対状態のメソッドの分離を採用するすべてのウィジェットを促進する一貫性のあるMVCパターンを提供します。 このコードは非常にクリーンで、メンテナンスが容易になります。 実際にはこれがYUI 3カルーセルは、その前にYUI 2ベースのいとこよりも優れている理由の重要な要因の一つです。
YUI 3プラグインモデルでは、開発者はオブジェクトに新しい機能を追加したり、既存の動作を変更することができます。 これは、動的に、YUI 3カルーセルは、それに組み込まアニメーションコードを持っていないのAjaxなどを介して要素を取り出すためのカルーセルの上に追加の機能を追加することができますが、代わりに私はそれが必要とされる場合のアニメーションのサポートを追加するプラグインを作成しました。 このコンポーネントは非常に軽量で維持するのに役立ちます。
あなた自身のウェブサイトのギャラリーのカルーセル
何カルーセルは、どのようにあなたのウェブサイトを向上させることができますを読んだ後で、うまくいけばあなたの手を汚すに熱心感じています。 私たちのYUI 3ギャラリーカルーセル拡張子の付いた、心配しないでください、あなたのウェブサイト上でカルーセルを実装するには、HTMLで箇条書きリストを提供するのと同じくらい簡単です。 それはただの販売ピッチではありません - それは我々が最近Yahoo!スポーツの検索結果ページにギャラリーカルーセルを統合方法を説明します。
簡単な例
ほとんどあなたが知っているために必要なすべてをカバーする簡単な例から始めましょう。 新しいギャラリーカルーセルを使用するための最も簡単な方法は、YUI 3は自動的にYahooのコンテンツ配信ネットワークからロードできるようにすることです。 カルーセルとは何かを想起し、項目のスクロール可能なリストは、我々は、HTMLのリストを作成します。 我々は、JavaScriptが容易に見つけ、それを扱うことができdivのリストが含まれています。 すでにあなたのマークアップ内のリストのような方法で表現され、いくつかのデータを持っていれば、またちょうどその周りにカルーセルdivを入れて、あなたの運をテストするかもしれません! それは我々がここでの画像の例を使用しているが、あなたが欲しい何のためにギャラリーカルーセルを使用することができます、と言うことは非常に重要です!
<div class="carousel" id="container"> <OL> <LI> <img src="img/c1.jpg">た</ li> <LI> <img src="img/c2.jpg">た</ li> <LI> <img src="img/c3.jpg">た</ li> <LI> <img src="img/c4.jpg">た</ li> <LI> <img src="img/c5.jpg">た</ li> </ OL> </ DIV>
今我々が動作するように我々のデータを持っていることを、我々はカルーセルウィジェットを使用して、すべての5つの項目を示すことによって、ルックスを強化したい。 あなたは既にYUI 3を使用していると仮定すると、これは簡単な作業です。 今まで見たことがないかもしれない唯一の事は、あなたが過去にYUI 3、ギャラリーに掘削されたか深くに応じて、我々が明示的にギャラリーのバージョンを指定しているということです。 我々はYUIのローダーは、デフォルトでからロードしようとしているビルドをギャラリーに含まれていないブランドの新しいウィジェットを使用しているので、これが必要です。 デフォルトでは、数が増加しているビルドしたときただし、YUIとYUIギャラリー成熟したように、これは将来的にはもはや必要ありません。
YUI({ギャラリー: "ギャラリー·2010年10月20日-19-33 '}) 。使用( "ギャラリー·カルーセル"、 "ギャラリー·カルーセル-Animの"、 "代替"は、関数(Y){ VARカルーセル=新しいY.Carousel({のBoundingBox: "#コンテナ"、 contentBox: "#コンテナ> OL"}); carousel.plug(Y.CarouselAnimPlugin、{アニメーション:{速度:0.7}}); carousel.render(); });
(あなたは全く新しいものを得ることに興味があればところで、あなたは訪問することができますYUI 3ギャラリーリポジトリを githubのかにゴパルのフォーク彼はカルーセル開発し、あなたがバグを見つけたら、我々は常にそれを聞いて幸せである。)
私たちの例に戻ると... YUIはここからそれを取るでしょう。 ローダーは、自動的にYahooのコンテンツ配信ネットワークからギャラリーカルーセルとその依存関係を取得します。 その後、カルーセルが初期化され、表示されています。 その後、ユーザーは周りにスクロールするには、左または右矢印をクリックすることができます。 不要な複雑さの1行にもたらすことを許してください、私は抵抗できませんでした。 私が使用Y.CarouselAnimPlugin 1ページからだけではなく、即座に次のページを表示する他にスムーズに私たちのカルーセルのスライドをさせること。 必要に応じて速度パラメータで再生すること自由に感じなさい。

あなたは上記のスクリーンショットからわかるように、カルーセルは稼働しています。 ただし、CSSは、ページの残りの部分に非常によく適合しない場合があります。 これは、我々がギャラリーカルーセルをカスタマイズする方法を説明します私たちの次のセクションでは、私たちをリードしています。
ギャラリーカルーセルをカスタマイズする
今すぐあなたのカルーセルを起動して実行してあなたのウェブサイトのためのユースケースを識別し、あなたがうまくいけば、シームレスに統合したいと思います。 前述のように、我々はスポーツの検索結果ページのようにした。 あなたは3つから4つに、例えば、表示されるアイテムの数を増やしたい場合は、カルーセルをインスタンス化する行を変更することによって行うことができます。
VARカルーセル=新しいY.Carousel({のBoundingBox: "#コンテナ"、 contentBox:numVisible、 "#コンテナは> OL":4});

まだ十分では良くない? ええ、右。 幸いにも、CSSは、我々独自のスタイル定義を追加したり、既存のCSSを触れずに初期のものを上書きすることができます。 彼らは非常に目障りなので、だからあなたの最初のステップは、おそらく、罫線を削除することであろう。 ちょうどあなたのページヘッダーに次のCSSを追加します。
。YUI 3カルーセル{ 国境:なし重要。! } 。YUI 3カルーセル-NAV { 背景:なし重要。! } 。カルーセルオールリチウム{ 国境:なし重要。! }
今、それは良く見えます。 私はまた私のカルーセルと見出しの間のギャップを減らすためにネガティブマージンを使用しました。 しかし、我々は完全に残っていません。 私はまた、あなたのページレイアウトにうまく統合する独自のカスタムボタンを使用することを想定しています。 この例では、我々はまた、Yahooの検索結果ページに使用されているものと同じボタンを使用します。 これがもう少し必要ですが、それでも、単純なCSS。
。YUI 3カルーセルボタン{ 背景:URL( "sprite_button.png")ノー繰り返しスクロール透明0 0重要。 高さ:20px重要な、幅:28px重要。! } 。YUI 3カルーセル-NAV-アイテム{ 背景:URL( "sprite_button.png")ノー繰り返しスクロール透明0 0重要。 背景の位置:-133px 0重要。! } 。YUI 3カルーセル·ファースト·ボタン{ 背景の位置:-90px 0重要。! マージン右:35px重要。 } 。YUI {3 - カルーセル·ファースト·ボタンが無効 背景の位置:-60px 0重要。! マージン右:35px重要。 } 。YUI 3カルーセル·次のボタン{ 背景の位置:-30pxの0は重要。! } 。YUI {3 - カルーセルボタンが無効 背景の位置:0 0重要。! } {YUI 3カルーセル-NAV-アイテム選択 背景の位置:-121px 0重要。! }
我々は今日のためにそれにそれを残し、あなたが開始する準備ができて感じる期待されます。 少なくとも、それは我々が必要とするすべてであった。 あなたのサイトであり、どのように興味を持ってあなたがその性能にどれくらい大きいしかし、に応じて、またここに適用されるサードパーティのコンテンツ配信ネットワークから何かをロードに関する一般的な考えがあります。 たとえば、Sidnei·ダ·シルヴァは、今月のブログ投稿で、いくつかの興味深い考えを打ち出した。 我々は、YUIウィジェットとその依存関係はあなた自身のウェブサイト、あるいは、コンテンツ配信ネットワークに移動することができますどのように説明することにどのように提供するために幸せになるので、可能な限り低くHTTPリクエストの数を維持することができます。 あなたが興味を持っているかどうか知らせ、私たちはあなたのフィードバックを楽しみにしています!
ギャラリーでもっと詳しく
Liferayのエドゥアルド·ラングレンとネイトキャバノーの優れたチームが持っているだけでなく、ギャラリーでカルーセルコンポーネントを -確かに、あなたがコントロールする、この種の市場でなら一見の価値。
共有および拡張: del.icio.usでブックマーク | Diggそれ! | reddit!
16コメント
申し訳ありませんが、コメントフォームは、この時点でクローズされます。



ちょっとゴパル、ファビアン、
素晴らしい仕事と偉大なポスト!
私は最近かなりYUI2に1つを使用するよりも自分のカルーセルを構築YUI3ファンである。
私は一つの質問を持っています。 それはカルーセルがしばしばスライドショーのような大きなウィジェットで支える役割を果たすことができるように私には思える。 それはあなたの新しいモジュールがこの目的のために拡張することができるか見るために素晴らしいことだ。 あなたはどんな例がありますか? それは、ポストのフォローアップのなら素晴らしいことです。
それまで私がプレイを持って楽しみにしています。
乾杯、
マーク
によるコメントマーク - 2010年12月13日#
こんにちはゴパル·ファビアン、
あなたが推奨されるように "...あなたはもちょうどその周りにカルーセルdivを入れて、あなたの運をテストするかもしれません!"私はなかった。 私もさまざまな方法では、コードのテスト中のために苦労しました。 結果では動作しません、どちらも理にかなっていません。
だから、あなたのカルーセルがどのように素晴らしいです、あなただけのしてください簡単な作業例を提供することができますについての長い広告を書く代わりにしてください。
我々は絶対にできないため、 "上のスクリーンショットからわかる、カルーセルは、稼働中です。"(偶数gifまたは我々ができませんでしたビデオ付き)。
私が主張しなければなりません。 私は本当にyui3を使用したいと私はあなたが正しくないデモで記載されていない拡張機能を提供することで、この非常に良いライブラリを傷つけていると思います。 それは、ユーザーのイライラさせられる。
コーディングは魔法ではありません、すべてのために私たちをだまししようと停止します。
ありがとう
マチュー
Matthによるコメント- 2011年1月7日#
偉大なので、匿名ユーザー(sdeva)のおかげで、ここではカルーセルプラグインで再生するためにコピー/ペーストできるサンプルコードは、次のとおりです。
YUI({ギャラリー: "ギャラリー·2010年10月20日-19-33 '})を使用する("ギャラリー·カルーセル "、"ギャラリー·カルーセル-Animの "、"代替 "は、関数(Y){。
Y.on( "利用可能"、関数(電子){
VARカルーセル=新しいY.Carousel({のBoundingBox: "#コンテナ"、contentBox: "#コンテナ> OL"});
carousel.plug(Y.CarouselAnimPlugin、{アニメーション:{速度:0.7}});
carousel.render();
}、 "#コンテナ");
});
Matthによるコメント- 2011年1月7日#
申し訳ありませんが、の実体とそれを試してみましょう。
<HTML>
<HEAD>
全トラックsrc="http://yui.yahooapis.com/3.2.0/build/yui/yui-min.js"> </ SCRIPT>
<リンクのrel = "スタイルシート"タイプ= "text / css"で
の。css "/>
</ HEAD>
<body class="yui3-skin-sam">
<div class="carousel" id="container">
<OL>
<LI> <img src="http://static.flickr.com/5006/5265039009_f92b60ffc6_m.jpg">た</ li>
<LI> <img src="http://static.flickr.com/5163/5265038529_b35a4f497e_m.jpg">た</ li>
<LI> <img src="http://static.flickr.com/5008/5265644686_712fde3f34_m.jpg">た</ li>
<LI> <img src="http://static.flickr.com/5241/5265037365_8679d00d49_m.jpg">た</ li>
</ OL>
</ DIV>
</ BODY>
<script type="text/javascript">
YUI({ギャラリー: "ギャラリー·2010年10月20日-19-33 '})を使用する("ギャラリー·カルーセル "、"ギャラリー·カルーセル-Animの "、"代替 "は、関数(Y){。
Y.on( "利用可能"、関数(電子){
VARカルーセル=新しいY.Carousel({のBoundingBox: "#コンテナ"、contentBox: "#コンテナ> OL"});
carousel.plug(Y.CarouselAnimPlugin、{アニメーション:{速度:0.7}});
carousel.render();
}、 "#コンテナ");
});
</ SCRIPT>
</ HTML>
Matthによるコメント- 2011年1月7日#
Matthこんにちは、
あなたのコメントをどうもありがとうございました、ギャラリーの例を提供していただきありがとうございます。 私は、私たちがすることを提供しているべきであるとことを忘れていることに同意するものとします。 我々は、理想的にはダウンロード可能な。htmlファイルは、次の時間として、小さな実行可能な例を提供することを確認します。 私は、あなたが今、私達とそれを共有し、その実用的な例を得たことをうれしく思います。 私たちは物事を改善するために助けてくれてありがとう! :-)
しかし、私はまた、我々はどちらも使用するのに人をだましたり、私たちのモジュールを宣伝したいないことを言わなければならない。 我々は、この記事の下部にある代替の実装へのリンクを提供し、我々は彼らのお気に入りを選ぶみんなと罰金です。 私たちのカルーセルは、YUI 3の公式な一部ではありませんが、拡張子はYUIギャラリーを使用して提供することにも注意してください。
最高の願い、
ファビアン
ファビアン·フランクコメント- 2011年1月9日#
上記の例では動作しない場合があります。
スクリプトが実行される前にイメージがロードされていない場合に生成されたスタイルは、フックが完全にである。
だから、domreadyではなく、利用可能な上にイベントを発生させます。
+ - Y.on( "利用可能"、関数(電子){
ほら。
Matthによるコメント- 2011年1月11日#
私は例をしようとすると、それは最初の項目のリスト1として表示されます。 2。 3。 4。 そして仕上げはカルーセルinitialiseをロードした後、これはどうあるべきかですか?
セラによるコメント- 2011年1月25日#
こんにちはセラ、
はい、これはプログレッシブ·エンハンスメントです。
http://en.wikipedia.org/wiki/Progressive_enhancement
よろしく、
ファビアン
ファビアン·フランクコメント- 2011年2月10日#
それが簡略化されたコードを表示するには良いことですが、あなたのイメージのそれぞれにalt属性を追加することを忘れないでください。 スクリーン·リーダーはまだカルーセル内の画像を認識するので、のは、彼らに良い経験を与えることができます。
によるコメントテッドDRAKE - 2011年2月13日#
こんにちはGuysが。 このためにありがとうございました。 私はいくつかの質問があります。 それが最初にロード、それは順序付けられたリストとして表示されたら、それはフォーマットされたボックスに入ります。 これを防ぐ方法はありますか?
私はこれに新しい午前、私はスキンを変更したり、カスタマイズできるかどうか知りたいと思って、そうであればどのように私はこれを行うことができますか?
ありがとう!
seeker7805によるコメント- 2011年3月14日#
こんにちはseeker7805、
これについてはいくつかの詳細情報を得るために私の以前の回答を見てください。 あなたはそれがすぐにカルーセルのように見せるために、HTML文書の頭の中で、少なくともCSSを提供しなければならないでしょうし、Javascriptが唯一のスクロールボタンを追加します。
よろしく、
ファビアン
ファビアン·フランクコメント- 2011年3月14日#
こんにちはseeker7805、
あなたはそれが完全にレンダリングされるまで、カルーセルを隠します "yui3-カルーセル·ロード"にカルーセルコンテナを設定することができます。
これは、すべてのYUI 3ウィジェットのが一般的です。
http://developer.yahoo.com/yui/3/widget/#hidingmarkup
ここでは、カルーセル·ウィジェットのためにそれを行うことができます方法は次のとおりです。
YUI({
/ /最後のギャラリーは、このモジュールのビルド
ギャラリー "ギャラリー·2011年2月23日 - 19から01"
})を使用してください。( "ギャラリー·カルーセル"、 "代替"は、関数(Y){
Y.on( "domready"は、関数(){
VARカルーセル=新しいY.Carousel({のBoundingBox: "#コンテナ"、
contentBox:numVisible、 "#コンテナは> OL":2});
carousel.render();
});
});
お役に立てばと思います。
よろしく、
ゴパルVenkatesan
によるコメントゴパルVenkatesan - 2011年3月15日#
Fabianはありがとう!
ゴパルありがとう!
seeker7805によるコメント- 2011年3月16日#
こんにちはファビアンとゴパル:
私は変更を実装しますが、明らかに私は間違って何かをしなければなりませんしています:
http://inetwebdesign.com/YUI3_carousel4.html
リフレッシュでは、それはまだ順序付けられたリストを示している。
あなたは私のコードをポストしたいですか? 私はここにスペースを詰まらせるしたくありません。
よろしく、
seeker7805
seeker7805によるコメント- 2011年3月16日#
こんにちは、
私はカルーセル内のリンクを置く場合は動作しません。 この動作を意図している?
ルカによるコメント- 2011年7月20日#
こんにちはルカ、
カルーセルツバメのクリックイベント今のところ、私はそれが良い経験でないことを知っている。 私はこの問題を解決するだろうチケットを提出することができます。
によるコメントゴパルVenkatesan - 2011年7月21日#