• ベストアンサー

スライドのカスタマイズについて

こんにちは。jsの知識が無く、いろいろやってはみたのですが、上手くいきません。力になって下さい。 下記のスライドを1ページ中に複数設置したい場合、どのように改造すれば良いですか?最大3つ設置したいです。よろしくお願いします。 http://www.queness.com/post/152/simple-jquery-image-slide-show-with-semi-transparent-caption #galleryを#gallery2とかにして増やすのですよね?でもその先が・・・よろしくお願いします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

Simpleと銘打ってあるだけに、id=galleryで決め打ちでつくってあるみたいですね。 >#galleryを#gallery2とかにして増やすのですよね? てっとり早いのはその方法かもしれませんが、スクリプト内のgalleryを全て訂正し、かつfunction galleryの名前とそのなかのidも訂正しなければなりません。 それほど長いものでもありませんが、ほとんど同じものを2個つくるのも釈然としません。 1)idを引数にして、複数個に対応できるようにする 2)オブジェクト化して、複数個に対応する みたいなのがよさそうです。 とりあえず簡単な1)のほうで… *idを引数に変えただけなので、他の部分はもとのままです。 *オリジナルのコメント部分は省略しました。(掲示板には長いので) *最初に slideShow('#G1', 6); のようにして必要個数分  セッティングしてください。 (#G1 ← id、6 ← 表示切替の時間間隔(秒)となっています) 対応するソース部分は、例えば  <div id="G1" class="gallery"> ~~ </div> みたいな要領。 *CSSも共通部分が多いので、id指定ではなくclass指定にして  兼用するのがよろしいかと。  ↑の例ではid=galleryからclass=galleryに変えています。  サイズなどが違う場合は、その部分だけid指定にするとか。 *なお、オリジナルに「Creative Commons Attribution 3.0 License」とありますので、よしなに。 http://creativecommons.org/licenses/ $(document).ready(function() { slideShow('#G1', 6); slideShow('#G2', 5); }); function slideShow(id, time) { $(id + ' a').css({opacity: 0.0}); $(id + ' a:first').css({opacity: 1.0}); $(id + ' .caption').css({opacity: 0.7}); $(id + ' .caption').css({width: $(id + ' a').find('img').css('width')}); $(id + ' .content').html($(id + ' a:first').find('img').attr('rel')).animate({opacity: 0.7}, 400); setInterval(setfunc(id), time*1000); } function setfunc(i) { return function() { gallery(i); }; } function gallery(id) { var current = ($(id + ' a.show')? $(id + ' a.show') : $(id + ' a:first')); var next = ((current.next().length) ? ((current.next().hasClass('caption'))? $(id + ' a:first') :current.next()) : $(id + ' a:first')); var caption = next.find('img').attr('rel'); next.css({opacity: 0.0}).addClass('show').animate({opacity: 1.0}, 1000); current.animate({opacity: 0.0}, 1000).removeClass('show'); $(id + ' .caption').animate({opacity: 0.0}, { queue:false, duration:0 }).animate({height: '1px'}, { queue:true, duration:300 }); $(id + ' .caption').animate({opacity: 0.7},100 ).animate({height: '100px'},500 ); $(id + ' .content').html(caption); }

lomo_a
質問者

お礼

fujillinさんへ ありがとうございました!!出来ました。しかも、とってもスッキリとコンパクトに! しかも、知識レスでも簡単に増やせて嬉しいです。ありがとうございました。 もし、よろしければ、もう少しお知恵をお貸し下さい。 設置したものの、JQueryのSpryTabbedPanels.jsの各タブの中に設置したので、タブを切り替えると、ちょっと反応が鈍いです。JQueryのドロップダウンメニューも使っているので、仕方が無いでしょうか?jsファイルを圧縮してみたのですが、変化が感じられません。何か方法があれば、ご伝授下さい。 よろしくお願いします。

lomo_a
質問者

補足

解決しました。 JQueryのバージョンをUPしたら重い感じが無くなりました。 ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JQueryのスライドショーを停止させたい

    サイトの背景画像のスライドショーを「VEGAS BACKGROUND JQUERY PLUGIN」を利用して行いたいのですが、スライドショーを1回で停止(ループさせない)ようにしたいのです。 どこをいじってもうまくいかなく困っています。 お教えいただけないでしょうか? http://vegas.jaysalvat.com/ (SLIDE SHOWを利用しています。) よろしくおねがいします。

  • 背景色と連動するスライドショープラグイン

    お世話になります。 スライドの画像が変わるたびに背景色も変わるタイプのスライドショープラグインを探しています。 サンプルとして http://elegantthemes.com/preview/eStore/ こちらのサイトの様な感じにしたいと思っています。 中央部分がスライドショーになっており両サイドが背景となっているようです。 ソースを見てみるとslideというクラスがついた要素全体をスライドするようです。 画像だけでなく文字や背景も変わっています。 ようはインラインコンテンツそのものをスライドするタイプのものであれば良いのかなと思います。 lightboxのようなイメージギャラリーですとインラインコンテンツを表示するタイプのものがありますが、単純にフェードインアウトするスライドショーでインラインコンテンツをスライドさせるものは無いでしょうか? もしくは簡単なjQueryで出来そうならご教授願いたいと思います。

  • 同HTML内で複数のjQueryを設置する方法

    複数のjQueryを使用し、 タブメニュータイプのものと自動スライドショータイプのを 同じHTML内にいれようとしていますが、 片方のみしか作動しません。 色々と探した結果、複数使う場合はちゃんとした記述方法があるということがわかったのですが、その方法が詳しくわかりません。 http://stacktrace.jp/jquery/with_other_lib.html こちらのサイトでは意味がわからず・・・ 使用しているものは以下です。 ---------------------------------------- <script type="text/javascript" src="js3/accordian.pack.js"></script> <script type="text/javascript" src="js2/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="js2/jquery.galleryview-1.1.js"></script> <script type="text/javascript" src="js2/jquery.timers-1.1.2.js"></script> <script type="text/javascript" src="js2/jquery.easing.1.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#photos').galleryView({ filmstrip_size: 6, frame_width: 145, frame_height: 160, background_color: 'transparent', nav_theme: 'dark', border: 'none', show_captions:true, caption_text_color: 'black' }); }); </script> ---------------------------------------- タブメニューがaccordian.pack.js、 その下のすべてがスライドショーのものです。 スライドショーはこちらを参考にしてつくりました。 http://spaceforaname.com/filmstrip.html 本当に困っております。 どうかご回答お願い致します。

  • html内にスライドショーを複数設置

    こんにちは、質問があります。 http://allabout.co.jp/gm/gc/417216/3/ ↑のサイトさんに載っているコードを参考に、スライドショーをhtml内に書きました。html内にスライドショーを複数設置をしたいので、#slideshow の部分を#slideshow2や#slideshow3にしたりしたのですが、スライドショーが#slideshow3の部分しか動きません。全てのスライドショーを同時に動かすにはどうしたらいいのでしょうか?当方初心者なので分からないのです。どなたか教えていただけるとうれしいです。 以下が書いたコードです。 <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript"> function slideSwitch() { var $active = $('#slideshow img.active'); var $active = $('#slideshow2 img.active'); var $active = $('#slideshow3 img.active'); if ( $active.length == 0 ) $active = $('#slideshow,#slideshow2,#slideshow3 img:last'); var $next = $active.next().length ? $active.next() : $('#slideshow,#slideshow2,#slideshow3 img:first'); $active.addClass('last-active'); $next.css({opacity: 0.0}) .addClass('active') .animate({opacity: 1.0}, 1000, function() { $active.removeClass('active last-active'); }); } $(function() { setInterval( "slideSwitch()", 2000 ); }); </script> <p id="slideshow"> <img src="img/slide1.jpg" alt="" /> <img src="img/slide2.jpg" alt=""/> <img src="img/slide3.jpg" class="active" /> </p> <p id="slideshow2"> <img src="img/slide4.jpg" alt="" /> <img src="img/slide5.jpg" alt=""/> <img src="img/slide6.jpg" class="active" /></p> <p id="slideshow3"> <img src="img/slide7.jpg" alt="" /> <img src="img/slide8.jpg" alt=""/> <img src="img/slide9.jpg" class="active" /></p> どなたか回答よろしくお願いいたします。

  • 横にスクロールするだけのスライドショーを探しています

    こんにちは。 JSとかJQUERYなどを使ってフィルムのように横に流れるスライドショーを探しています。 うまく表現できないのですが、一枚ずつ表示して一枚ずつ横にスクロールするのではなく、回転寿司みたいに自動でゆっくりと画像が流れてゆくものが欲しいのですが、意外に見つからずに困っています。 このようなスライドショーを公開しているサイトさんをご存知でしたらお教えください。

  • スクロールスライドショー

    https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js を使って モニター横100%で画像のスライドショーを作りたいのですが、 高さは300pxくらいで、3枚表示され、マウス操作かボタンクリックで右や左の画像に代わっていく ご指導お願いいたします。

  • jQuery faux-3D Viewportコンテンツ内でもスライド

    jQuery faux-3D Viewportコンテンツ内でもスライドさせたい jQuery faux-3D Viewport http://www.skuare.net/test/jfaux3D.html のカスタマイズで質問です。 1~9ボタンの操作に加え、 <div class="slide-wrap"></div> の中にリンクを張ってページスライドさせたいのですが、 JSの記述方法が分かりません。 そもそも実現できるのかどうかもわからないのですが、 ご教授いただけないでしょうか?

  • jQueryでスライドショーを作っているのですが

    jQueryを使用し、下記URLの様な画像がスライドショーになるサイトを製作しているのですが、 (http://maxb.net/scripts/jbgallery-2.0/docs/nomenu.html) JavaScrip初心者の為、スライドショーを最後の画像でストップするやり方が分からず 困っております。 スライドショーにはjbgallery-2.0.jsといファイルを使用しております。 (ファイルを製作された方のサイトはこちら:http://maxb.net/scripts/jbgallery-2.0/) スライドショーが最後の一枚でストップする方法をおわかりの方がいらっしゃいましたら、 ぜひ教えていただきたいと思っております。 ご教授のほど、何卒よろしくお願いいたします。

  • jqueryでつぶやきを自動スライド表示したい

    jQuery初心者です。tweetable.js(http://theodin.co.uk/blog/javascript/tweetable-jquery-plugin.html) で取り込んだつぶやきをsimple-spy-effect(http://jqueryfordesigners.com/simple-jquery-spy-effect/)を使って縦にスライドさせようとしているのですがうまくいきません。 具体的にはsimple-spy-effect、tweetable.js片方だけ使用してテストすると問題なく動作するのですが両方をあわせると自動スライドのほうが効かなくなってしまいます。 おそらくつぶやきを取得し終わった後にspy effectの処理を行わせるようにするといいと思うのですがやり方がわかりません。。 希望としてはユーザーが特にアクションを起こさなくてもページが開けば自動でつぶやきスライドが始まる感じにしたいのです。 よろしくお願いします。。 /* コードです */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title>Simply Spy</title> <style type="text/css" media="screen"> <!-- #sidebar li {height: 90px;overflow:hidden;} #sidebar .spyWrapper {height: 100%;overflow: hidden;position: relative;} --> </style> <script src="jq_1.2.6min.js" type="text/javascript"></script> <script src="jq_tweetable.min.js" type="text/javascript"></script> <script src="simple_spy.js" type="text/javascript"></script> <script type="text/javascript" charset="utf-8"> $(function () { $('#sidebar').tweetable({ username: 'jquery',// ここにtwitterのユーザー名を入力する time: true, limit: 15 }); }); </script> </head> <body> <div id="sidebar"></div><!--つぶやきを表示--> </body> </html> 【補足】 simple-spy-effectはjquery1.4では動かないみたいなので1.2.6を読み込んでます simple_spy.jsは上記サイトのコードのコピペです。 jq_tweetable.min.jsはul要素にsimple_spyの動作に必要なclassの"spy"をつけた以外は上記サイトのままです。

  • jQueryのスライドショーのカスタマイズについて

    仕事であるサイトを作っているのですが、製品ページの所で製品画像をスライドショーにして実装しようと思っており、jQueryで理想に近いプラグイン(galleriaというものです)を発見したのですが、スライドショーの領域内でさらに拡大画像ができるようにしてほしいと言われ自分でカスタマイズしようとやってみましたがうまくできません。 皆様のお力をお貸しいただけないでしょうか。 ■galleriaのプラグインを使ってカスタマイズする内容 galleriaのサイトからファイルをダウンロードし(http://galleria.aino.se/download/)メイン画像(サムネイルの上にある画像)内、もしくは外に「拡大画像」というボタンを設置し、クリックするとモーダルウィンドウで拡大画像が表示されるようにしたい。 ■自分でうまくできないところ このプラグインはサムネイル、もしくは左右にある矢印をクリックすると画像が変わる仕様になっており、「拡大画像」ボタンに今表示されているメイン画像を判別させて拡大画像を表示させる処理が必要となると思うのですが、うまくいきません。 モーダルウィンドウはthick.box(http://jquery.com/demo/thickbox/)を使って表示させています。 その他に、もっと簡単にできる方法など教えていただければ助かります。 よろしくお願いいたします。

このQ&Aのポイント
  • Digital TV boxの録画番組をBD-REへ書き出しできない問題が発生しています。
  • EW001、EW008のエラーコードが表示されるため、録画番組の書き出しができない状態です。
  • インターネットへの接続は正常であり、AACSキーの更新不良ではない可能性があります。
回答を見る