• ベストアンサー

jQuery Cycle Pluginについて

jQuery Cycle Plugin(http://jquery.malsup.com/cycle/)についてですが、 自動再生ではなく、クリックで動作させたいと思っています。 そこで、1番目の画像をクリックしたら、最後の画像まで順番にフェードし、 1番目に戻る。といったような動きは、可能でしょうか。 オプションの設定をみましたが、分からなかったので ご存知の方がおられましたらお教え頂けないでしょうか。 どうぞ宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • my--
  • ベストアンサー率89% (91/102)
回答No.2

(function ($) { $.fn.myCycle = function (options) { // プラグインメソッド // 設定オプション var opts = $.extend({ autostop: true }, options); // autostop: trueは共通値 this.each(function () { // 複数jQuery Cycle設定 var obj = $(this); // 対象jQueryオブジェクト var newOpts = $.extend({}, opts); // オプションコピー newOpts.autostopCount = obj.find('img').length + 1; // 自動停止切り替え回数(切り替え要素数 + 1 で先頭停止) // 自動停止でコールバック newOpts.end = function () { obj.cycle('destroy'); // もろもろ削除 obj.cycle(newOpts); // オプションを渡してjQuery Cycle再設定 obj.cycle('pause'); // 一時停止 }; obj.cycle(newOpts); // オプションを渡してjQuery Cycle設定 obj.cycle('pause'); // 一時停止 // 先頭要素clickイベント $('img:first', obj).click(function () { obj.cycle('resume'); // 再始動 }); }); return this; }; })(jQuery); // ここまでを適当な名前で保存(jquery.cycle.extend.js) HTML <!-- include jQuery library --> <script type="text/javascript" src="jquery-1.8.3.js"></script> <!-- include Cycle plugin --> <script type="text/javascript" src="jquery.cycle.all.js"></script> <!-- 適当な名前で保存したjsファイル --> <script type="text/javascript" src="jquery.cycle.extend.js"></script> <!-- initialize the slideshow when the DOM is ready --> <script type="text/javascript"> $(document).ready(function () { $('.slideshow').myCycle(); // プラグインメソッド呼出し }); </script> No.1を繰り返し処理しただけですけど、とりあえずこんな感じで。

okyesno
質問者

お礼

ご連絡が遅くなってしまい申し訳御座いません! お教え頂いた方法で思っていたとおりに動作しました! 大変助かりました。感謝致します。 どうもありがとうございました!!

その他の回答 (1)

  • my--
  • ベストアンサー率89% (91/102)
回答No.1

<script type="text/javascript"> $(document).ready(function () { // 設定オプション var opts = { autostop: true, // 自動停止 autostopCount: 6, // 自動停止切り替え回数(切り替え要素数 + 1 で先頭停止) // 自動停止でコールバック end: function () { obj.cycle('destroy'); // もろもろ削除 obj.cycle(opts); // オプションを渡してjQuery Cycle再設定 obj.cycle('pause'); // 一時停止 } }; var obj = $('.slideshow'); // 対象jQueryオブジェクト obj.cycle(opts); // オプションを渡してjQuery Cycle設定 obj.cycle('pause'); // 一時停止 // 先頭要素clickイベント $('img:first', obj).click(function () { obj.cycle('resume'); // 再始動 }); }); </script> JQuery Cycle Plugin - Option Reference http://jquery.malsup.com/cycle/options.html

okyesno
質問者

補足

ご回答頂き大変ありがとうございます! お教え頂いたとおりにやってみたら、思っていたとおりに動作しました! 説明も書いていただいてありがとうございます。 もう1点出来たらお教え頂きたいのですが、 これをページ内に複数設置したく同じクラス名で別々で動作させることは可能でしょうか? いろいろコードをいじってみましが、 基礎的な事がまだ分かっておらず、わからず苦戦しております。 どうぞ宜しくお願いいたします。

関連するQ&A

  • jQuery Cycle Pluginについて

    jQuery Cycle Plugin(http://jquery.malsup.com/cycle/)を使用して、8枚の画像を次々と表示するスライドショーを実装しました。 1枚目から7枚目の間は「Skip」ボタンを表示してクリックしたら、最後の画像が表示されてスライドが停止するといったような動きは、jQuery Cycle Pluginで実現することは可能でしょうか。 知っている方がいらっしゃいましたら何かヒントを頂けませんでしょうか。 どうぞ宜しくお願いいたします。

  • jQuery Cycle Pluginについて

    JavaScriptで、右から左に自動で画像が流れるスライドショーを表現するために、 現在いろいろなプラグイン等を見ています。 その中に、「jQuery Cycle Plugin」というのがあったのですが、 こちらのサイトに行き all となっているファイルのダウンロードを するために対象のリンクをクリックすると、なぜか403エラーになってしまいます。 こちらはすでに配布を終了してしまった、ということなのでしょうか? 試しにと思い、同じページにあるLite Pluginを設置しても、 私の望む動きは得られませんでした。 同じようなプラグインを使用中の皆様、どうかご意見やご指摘、アドバイスをいただけないでしょうか? ※ちなみに、正常に動いているサイトさんでは、jQueryは1.2.6を、 ※「jQuery Cycle Plugin」のallを使用していました。

  • jQuery Cycle Plugin についての質問です。

    jQuery Cycle Plugin についての質問です。 ▼プログラムについて jQuery Cycle Plugin (http://www.malsup.com/jquery/cycle/) ▼利用したい機能 Advanced Demos (Part 1) (http://www.malsup.com/jquery/cycle/adv.html) 上記サイトの「Advanced Demos (Part 1)」と同じように設定しようとしています。 とりあえず、FIrefox(Ver.3.3.6)とIE(Ver.8以降)では正常に動作しています。 ▼動作しているテスト用アドレス http://check.we-dok.jp/jq_cycle/cycle_test_01.html これを、IEのVer.6または、Ver.7で表示すると、スクリプトエラーがでてしまいます。 よくわからないのですが、 恐らく、ヘッダー内に記述している以下の部分が悪いと思うのですが、 本家サイトのコードを見たり、いろいろいじってみたのですが、自己解決できません。 <script type="text/javascript"> $(document).ready(function() { $('.pics').cycle({ fx:'scrollDown', speedIn: 2000, speedOut: 500, easeIn: 'bounceout', easeOut: 'backin', delay: -2000, pause: 1, }); }); お詳しい方、どこが悪いのか是非、 ご教授くださいますようお願いいたします。

  • jQuery Cycle Pluginで表示時間を

    jQuery Cycle Pluginで4枚の画像をフェードで切り替えて順に表示するものを作っています。 そこでできることなら各画像の表示時間(timeoutの部分)をそれぞれで変えたいのですが、そのような方法はあるのでしょうか? (フェードの時間(speed)は一定で構いません) 1枚目……………1秒表示     ↓(フェード1秒) 2枚目……………4秒表示     ↓(フェード1秒) 3枚目……………2秒表示     ↓(フェード1秒) 4枚目……………1秒表示(ここで停止なので厳密には秒数は関係なし) 以下のJavaScriptでは表示時間をそれぞれ変えることが可能のようなのですが、 こちらはフェード機能がないようでして…。 http://attosoft.info/blog/release-animate-image-js/ Cycle Pluginにこだわっているわけではありませんので、他の方法で実現可能なものがあれば 教えていただないでしょうか? ※実装しなければならない条件  ・切り替え方法はフェード  ・リピートしない(4枚目で止まる)  ・各画像の表示時間をそれぞれで変える ←←←これを追加したい ※その他の条件  ・HTML 4.01 Transitional  ・IE6でも表示可能  ・Flash使用不可 よろしくお願いします。

  • jQuery Cycle Plugin のナビ

    img01.jpg~03.jpgをフェードインフェードアウトで繰り返し表示しているのですが ここに手動追加?でナビゲーションを付けたいです。 #navi 部分のbutton02.jpg にマウスオーバーで img02.jpgを button03.jpg にマウスオーバーで img03.jpgを フェードイン。 マウスアウトでフェードアウトさせて、そこからまた自動でローテーション。 という事をやりたいのですが、自力ではできませんでした。 ご教授の程、よろしくお願いいたします。 <script type="text/javascript" src="jquery-1.2.6.min.js"></script> <script type="text/javascript" src="jquery.cycle.min.js"></script> <script type='text/javascript'> $(document).ready(function() { $('div#main').cycle({ fx:'fade', speed:500, timeout:4000 }); }); </script> <div id="main"> <img src="img/img01.jpg" /> <img src="img/img02.jpg" /> <img src="img/img03.jpg" /> </div> <div id="navi"> <ul> <li><a href="#"><img src="img/button02.jpg" /></a></li> <li><a href="#"><img src="img/button03.jpg" /></a></li> </ul> </div>

  • jQuery UI Accordion Plugin(jQuery U

    jQuery UI Accordion Plugin(jQuery UI アコーディオン プラグイン)でアコーディオンメニューを作っています。 下記のような要素を ↓html <div id="accordion"> <h3><a href="#">First header</a></h3> <div>First content</div> <h3><a href="#">Second header</a></h3> <div>Second content</div> </div> プラグインを読み込んで ↓javascript $("#accordion").accordion(); みたいな簡単な記述でアコーディオンメニューが実装できます。 サンプルURL:http://jquery.bassistance.de/accordion/demo/ これを自動で上から順に一定間隔で展開するようにしたいのですが(クリックして展開する動作も生きで)、 動きイメージ:http://www.au.kddi.com/ aubyKDDIサイトの左側のメニュ↑ このプラグインを使わないやり方とかでもいいです。 ご教授の程お願いいたします。

  • jQueryスライドショーの設定

    http://slidesjs.com/ Slides, A Slideshow Plugin for jQuery ここのjqueryを使って、左右の矢印(← →)をクリックすると div要素が順番に入れ替わっていくというものを導入しました。 そこで、例えばdivが3つあったとして、 1が表示されているときに→を押すと、当然2に行きますが 3が表示されているときに→を押すと、スクロール自体は右にスクロールしているのに 1が表示されてループしてしまいます。 そこで、3が表示されているときは、→をクリックしても1に行かない、 そもそも→はクリックできず、←しかクリックできない状態にしたいのです。 矢印は消えなくていいです。 うまくストップさせることはできないでしょうか

  • jQueryスライドプラグイン

    jQueryスライドプラグイン FLASHを使用せずにjQueryのプラグインで以下のような表現は可能でしょうか? http://www.starcat.co.jp/ 以下が実現したいです。 ・メイン画像がフェードまたは、スライドで切り替わる ・メイン画像クリックで別のページへリンク ・サムネイルクリックでメイン画像が切り替わる ・ランダムで表示できる ・自動で遷移する。

  • jQuery UIを使用した画像スライダーについて

    お世話になります。 当方、htmlとcssの知識しかなく、Javascriptはほとんど未知の領域なのですが、 ホームページに動きを付けたくて、jQuery UIを使用した画像スライダーの設置方法を載せたサイトを探していました。 そこで、下記のサイトさんのスライダーがイメージに近かったので使用したいと考えています。 ttp://phpjavascriptroom.com/?t=ajax&p=jquery_plugin_imagegallery#a_image_rotator サンプルページ ttp://phpjavascriptroom.com/exp3.php?f=include/ajax/jquery_plugin_imagegallery/featured_content_slider.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB そっくりそのまま実装することができ、スタイルシートの記述をいくつかいじって 枠の幅や画像の大きさを変更するまではできたのですが、 項目を追加することができませんでした。。 ※サンプルページで、4つある項目の一番下ハニートースト@…の下にさらに項目を追加して、5つか6つくらい画像がスライドするようにしたいのです。 htmlファイルで、<li>や<div>を追加して、id="nav-fragment-4"をid="nav-fragment-5"にして 連番にもしましたが、それだけではうまく画像が表示されません。 ※4番目のタグをコピーして5番目を作りましたが、5番目をクリックしても画像が表示されず真っ白で、そのあと4番目をクリックすると、画像が2つ縦に連なって表示されます。 javascriptの記述で最大何枚画像が表示されるという記述があるのでしょうか? 素人の質問なので、わかりにくい部分はあると思いますが、 何卒、お力添えよろしくお願いします!!

  • クリックでスライドショー

    http://lab.komadoya.com/javascript/crossFader/#cf2 上記サイトのようなフェードイン・フェードアウトのスライドショーに 以下のような動作を追加したいと思っています。 画像をクリックしたら再生し、最後の画像でストップ。 もう一度クリックで1枚目の画像に戻る。 色々調べたのですが、マウスオーバーや自動再生のものが多く 思ったものが見つかりませんでした。 画像(1)、画像(2)、画像(3)とあり、 画像(1)クリックで、(1)→ (2)→ (3)でストップ。 もう一度クリックで(1)に戻る。 といったイメージです。 お分かりの方がおられましたらご教授頂けたら幸いです。 どうぞ宜しくお願いします。