javascriptの併用について

このQ&Aのポイント
  • javascriptの併用についての質問です。画像にSwishとfancyboxを適用したいです。
  • 初心者ですが、画像ホバー時にSwishを、クリック時にfancyboxを動作させたいです。
  • 具体的には、画像にSwishを適用した状態に、fancyboxを追加したいと思っています。
回答を見る
  • ベストアンサー

javascriptの併用について

web初心者です。 [fancybox] http://fancybox.net/ [Swish] http://thefinishedbox.com/freebies/plugins/jquery-zoom-plugin/ このふたつのjavascriptをひとつの画像に対して適用することは可能でしょうか? 画像ホバーした時にSwishが、クリックした時にfancyboxが、という具合に動作させたいです。 今このような状態で画像にSwishを適用させています。 <a href="#" class="zoom" id="1"><img src="image/sample.jpg" alt="thumbnail" /></a> ここにfancyboxを <a id="example1"></a> という形で入れたいのですが、どのようにしたら両方とも動作するでしょうか?? 初心者なので言葉が足りなくて恐縮ですが、よろしくお願いします。

noname#195184
noname#195184

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

  • ベストアンサー
回答No.1

先に断っておきますが両方適用してチェックしたわけではないので適用方法だけの回答です。 まずhtml側のaタグに付けるid名を統一しましょう。 現状のid="1"というのはid名としてオススメしません。アルファベットで付け直してておく方がよいですよ。 ここでは仮にExample1とします。 <a href="#" class="zoom" id="Example1"><img src="image/sample.jpg" alt="thumbnail" /></a> Swishに関しては現状は設定で $('#1').hoverZoom(); みたいにして書いていると思いますので、とりあえずこれを $('#Example1').hoverZoom(); にします。 これで1ではなくExample1に適用してくれます。(ちなみ頭に付いている#はidという意味になっています) ここからfancyboxを設定していきますが、Swishと同じでfancyboxもjQueryというものを使っていますので、設定で適用する対象の呼び出しは基本的に同じような形で指定してあります。 $('#example1') ←この形です http://fancybox.net/ の場合 <script type="text/javascript" src="/js/web.js?m=20100203"></script> で設定ファイルを読み込んでいます。 http://fancybox.net/js/web.js?m=20100203 このリンク先に適用させたいidへの指定サンプルがあるので適用させたいエフェクトのテンプレを同じようにExample1に書き換えてください。 書き換えたら必要そうな部分だけをコピーしてSwishの設定をしてあるhtml側のscript要素内の最後にでもペーストしておきます。 あとはfancyboxのライブラリをlink要素で読み込めば動くはずです。jqueryのライブラリは2つ書く必要は無く、1つ記述があれば大丈夫です。

noname#195184
質問者

お礼

できました!たいへん分かりやすく丁寧な説明をしていただいたおかげで、思ったよおりの効果を得ることができました。 id名も数字は避けたほうがいいのですね。勉強になりました。 ありがとうございました!

関連するQ&A

  • jQueryPlugin「fancybox」のパス

     初歩的な質問ですみません。。 jQueryPlugin「fancybox」を使いたいと思い、下記のサイトから ダウンロードしました。 http://fancybox.net/ ダウンロードされた、「jquery.fancybox-1.3.4」のフォルダを 開いたところ、ファイルがいっしょくただったので、 imgフォルダと、jsフォルダとcssフォルダを作り、ファイルを 整理しようと思いました。 「example」を「img」にリネームして、 「fancybox」のpngとgifデータを「img」フォルダに移しました。 「fancybox」は「js」にリネームして、jsファイルをそのまま格納。 「fancybox」の「jquery.fancybox-1.3.4.css」は「css」フォルダ を作って移しました。 「css」フォルダに移した「jquery.fancybox-1.3.4.css」の画像の パスを、 > #fancybox-loading div { position: absolute; top: 0; left: 0; width: 40px; height: 480px; background-image: url('fancybox.png'); } > > #fancybox-loading div { position: absolute; top: 0; left: 0; width: 40px; height: 480px; background-image: url('./img/fancybox.png'); } > 上のようにとしましたが、 「fancybox.png」を初めとする、画像のパーツが反映されません。 パスが間違っているのでしょうか。。 ファイルを移動させた時に混乱してしまうのですが、図などを書いて おけば分かりやすいでしょうか。 アドバイスをいただけましたら幸いです。

  • javascriptで画像を表示する

    javascriptで画像を表示した際に、表示したimgにCSSのidを付与したいのですが、以下のようにしても画像にidはつきませんでした。 document.write("<img src='images/image.jpg' id='example'>"); 一部の画像のみにスタイルを適用したいので、画像それぞれに異なるidを与えたいのですが、javascriptで表示させる場合のやり方がわかりませんでした。 どうやってidを割り当てるのか教えてください。 よろしくお願いいたします。

  • マウスオーバした部分の画像を隣に拡大して表示させたいと思っています。

    マウスオーバした部分の画像を隣に拡大して表示させたいと思っています。 下記URLでやっている動作そのものなのですが、実際にこのソースを使ってみたところ、文字化けしてしまう上、うまく動作しません(Ajaxのソースのようです)。 できればJavascriptを使ってやりたいのですが。。。 初心者です。 よろしくお願いいたします。 参考:http://f32.aaa.livedoor.jp/~azusa/exp3.php?f=include/ajax/jquery_plugin_zoom/jqzoom.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB

  • ページ横スクロールでjQuery lightBox

    横に長いwebページを作っています。 ページの途中でjQuery lightBox plugin (http://leandrovieira.com/projects/jquery/lightbox/) を使って拡大画像を表示させたいのですが、 サムネイルをクリックすると、ページのはじめの方に拡大画像が表示されてしまいます。(拡大時の背景のオーバーレイもずれている) これを、サムネイルのあるページ上に表示させるようにしたいのですが、javascriptがよくわからないので、どのように修正したらよいか教えていただけないでしょうか。

  • jqueryのバージョン違いの解決方法は?

    どうしてもわからないので、ご教授お願いいたします。 http://baby.caregoods.org/のサイトでjquery.treeview.js(http://bassistance.de/jquery-plugins/jquery-plugin-treeview/)のツリーメニューを使っています。 同梱されていたjquery1.4.3を使っていました。 ところが、このサイトの管理画面で画像のドラッグ&ドロップで入れ替えるという機能が使えなくなり、元のjquery1.6.2に戻したところjquery.treeview.jsのメニューが使えなくなってしまいました。(いろいろなpluginが入っているようです。) 複数のjqueryが使えないのはここで調べてわかったのですが、http://stacktrace.jp/jquery/with_other_lib.htmlのサイトを参考にして ----------------- // $ 関数および jQuery関数の上書きを元に戻します。 var $j = jQuery.noConflict(true); // $ は jQuery ver1.4.3を参照します。 alert($.fn.jquery); // => 1.4.3 // jQuery は jQuery ver1.4.3を参照します。 alert(jQuery.fn.jquery); // => 1.4.3 // $j は jQuery ver1.6.2を参照します。 alert($j.fn.jquery); // => 1.6.2 ---------------------------- と書いたjsファイルを読み込むのですが、1.6.2しか反映されず、1.4.3で使っているjquery.treeview.jsが使えません。 このjsファイルの前に、jquery-1.4.3.jsとjquery-1.6.2.jsは呼び出してあります。 firefoxで閲覧すると「1.6.2」「1.6.2 このページによる追加のダイアログ表示を抑止する」「1.4.3 このページによる追加のダイアログ表示を抑止する」と書いたポップアップが3度ほど出るようになりました。 こういう状況なのですがどうにか一緒に使える方法はないでしょうか? javascriptは初心者なので説明があまり上手くないので申し訳ありません。 うまく伝わるかわかりませんが、よろしくお願いいたします。

  • relタグにリンクスタイルを指定したい

    いつもお世話になっております。 初心者なのですが試行錯誤をしつつWEBを制作しています。 jQueryのFancyboxを使って画像の表示をさせているのですが、その画像に対してリンクスタイル(マウスオーバーで画像に枠線表示)を指定したいのです。 コードの一部として以下のようになっています。 <a rel="press_group" href="image/press_06.jpg"><img src="image/press_06.gif" width="386" height="546" alt="プレス_06" /></a> <a rel="press_group" href="image/press_07.jpg"><img src="image/press_07.gif" width="340" height="241" alt="プレス_07" /></a> このような場合どのようにスタイルシートを書けばいいのでしょう? Fancybox自体は正常に動いています。 何卒ご教授よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • jQueryの隣接セレクターが上手く動作しない

    jQueryを用いてギャラリーのページを作成しています。 ページのイメージは上部にサムネイル画像が並べてあり、その下にクリックされたサムネイル画像に対応する大きな画像を表示するというものです。その中で隣接セレクターが上手く動作せず悩んでいます。どなたか教えていただきたく、よろしくお願いいたします。 具体的には HTML部分 <\-- サムネイル部分 --> <div id="navi"> <ul> <li> <a href="images/img1.jpg"><imgsrc="images/img1_thum.jpg" alt="作品1" /></a>  </li> : : </ul> </div> <\-- 大きな画像表示部分 --> <div id="main"> <img src="とりあえず最初の作品のパス" alt="最初の作品"/> </div> jQuery部分 $(function(){ $("#navi a").click(function(){ var filename=$(this).attr("href"); var altname=$("+img",this).attr("alt"); : : ここで、filenameには a要素のhref属性の値が入るのですが、altnameが undefined になってしまいます。 私は $("+img",this).attr("alt");  で  this (この場合はa要素)の次のimg要素のalt属性 (たとえば「最初の作品」)が返ると考えているのですがなにが間違っているのでしょうか?

  • jQueryのfadeToの動きが変(サーバ上)

    サムネイル画像をクリックするとメイン画像にそれを映し出し そのメイン画像が指定した時間で薄っすらと表示されるような効果のイメージギャラリーをjQeryを使って制作しています。 jQueryバージョン:jquery-1.7.2.min.js ※(薄っすらと表示される効果:jqueryにてメイン画像のopacityを0→1)に変化させて実現しています 【問題点】 ローカルPC上でテストすると意図する動作をするのにサーバ上にデータをアップしてテストすると メイン画像の移り変りにブラウザ起動後、初回サムネイルをクリックしたときのみ遅延が発生し、JqeryのfadeToも効きません。 何かjQueriのfadeto関係などソースに問題があるとか、これはキャッシュの問題で仕方ないとかあればご指導のほどよろしくお願いします。 【問題点詳細】 しかし、自分のパソコン内(ローカル環境)で動作させてみると意図したとおりになるのですが、 データをレンタルサーバ上にアップし、確認してみると、サムネイルをクリックすると jqueryのfadetoの(opacityを0から1にする部分)動作がおかしくなります。 ブラウザを起動し初回サムネイルをクリックしたときのみ、メイン画像が前の残像が残り(遅延発生)し、fadetoの(opacityの変化)が聞かなくなります。 【状況整理】 1.どのPCでもローカル環境(自分のPC内)でテストすると意図する動作をする。 2.レンタルサーバ上だと、ブラウザを起動後、初回サムネイルをクリックしたときのみおかしい動作をする。(メイン画像の切り替わりに遅延が発生する(fadetoも効かない)) 3.ブラウザを閉じない状態で、同じサムネイルをクリック(2回目)すると意図する動作をする。 ※2.3を考えますと2回目以降クリックしたときに大丈夫なのは1回目クリックしたときに取得したメイン画像のキャッシュがブラウザに保存されているからだと思います。 またローカルだと大丈夫なのはメイン画像取得する時間(ダウンロードがない)から じゃないかな?とも思います。 メイン画像に使っているそれぞれのファイルサイズは80KBと軽いです。 またIE 8/9でもfirefox12でも同じ状況です。 ■HTMLソース(XHTML) <div id="carousel"> <!--メイン画像--> <div><img src="img/main.jpg" alt="" class="main_img"/></div> <!--サムネイル画像--> <div class="anyClass"> <ul> <li><a href="img/photo1.jpg"><img src="img/photo1_thumb.jpg" alt="" /></a></li> <li><a href="img/photo2.jpg"><img src="img/photo2_thumb.jpg" alt="" /></a></li> <li><a href="img/photo3.jpg"><img src="img/photo3_thumb.jpg" alt="" /></a></li> </ul> </div> </div> ■Javascript(jQuery) $(function() { $("#carousel .anyClass a").click(function(){ $("#carousel .main_img").css("opacity",0); ←いったんメイン画像のopacityを0に落とす $("#carousel .main_img").attr("src",$(this).attr("href")); ←メイン画像のURLにセット $("#carousel .main_img").fadeTo("normal",1); ←メイン画像のopacityを1に変化 return false; }); });

    • ベストアンサー
    • CSS
  • twitterとjqueryのバッティングについて

    はじめまして、jquery.showcase.jsとtwitterウィジットの件で質問させてください。 twitterウィジットとjquery.showcaseを同じHTML内で動作させたいのですが、 IE6~9とchromで見ると、大画像にマウスオーバーすると表示されるサムネイル(大画像にも)に、登録していない画像が2枚余分に表示されてしまいます。 納期も近づいており大変困っております。 正しい枚数ぶんだけ読み込ませたいのですが、どなたか助けていただけませんでしょうか? 「サンプル」 http://www.im-data.co.jp/corporation/kimoto/hatena/ ちなみにjquery.showcaseに表示させたい画像は1枚~5枚。 IE6~9とchromでは、パス不明の<img/>がサムネイル、大画像ともに2枚追加されてしまいます。firefox3.6では正常に表示されます。 宜しくお願い申し上げます。

  • サムネイル画像の自動作成

    ECサイトを運営してるのですが、知識に乏しいのでご協力願います。 画像を自動的に縮小する(サムネイル画像の生成)JavaScriptなどの サンプルをご存じでしたら教えてください。 例) 900px×900pxの画像に「id="resize"」など加えたら、 自動的にジャギーの無いアンチエイリアスのかかった 100px×100pxの画像になる。 Jqueryなどクライアントサイドでの動作するもので、 有償・無償は問いません。 不足事項があれば、分かる範囲でお伝えするので、 よろしくお願いします。

専門家に質問してみよう