アコーディオンとロールアップの共用について

このQ&Aのポイント
  • ホームページ作成時にアコーディオンとロールアップ機能を使用したいと思っています。しかし、スクリプトの読み込み順を変えてもどちらか片方しか正常に動作しません。両方の機能を同時に使用するためには、どのような対策が必要でしょうか?
  • アコーディオンとロールアップの機能を使用したいウェブサイトを作成しています。しかし、スクリプトの読み込み順を変えてもどちらか片方しか機能しません。どのようにすれば両方の機能を同時に使用できるようになるのでしょうか?
  • アコーディオンとロールアップの機能を組み合わせて使用するためには、スクリプトの読み込み順に注意が必要です。どのようにすれば両方の機能が正常に動作するのか教えてください。
回答を見る
  • ベストアンサー

アコーディオンとロールアップの共用について

今、あるホームページを作っていて、アコーディオンとロールアップの機能を使用したいと思っています。 ロールアップについては今までも使ったことがあり、以下の2つのスクリプトを使用しています。 ○jquery.js ○yuga.js これに、今回はアコーディオンの機能を使いたいので、以下の3つのスクリプトを組み込んで使おうと思いました。 ○accordion.js ○prototype.js ○effects.js で、以下のようにHTMLソースのHEAD内にスクリプトを読み込む記述をして、動作テストを行ったところ、どちらか片方しか動作しないというトラブルが発生しました。 記述の順番を変えると、どちらかが動作するようです。 例1:ロールアップのみ動作する <script type="text/javascript" src="../js/prototype.js"></script> <script type="text/javascript" src="../js/effects.js"></script> <script type="text/javascript" src="../js/accordion.js"></script> <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/yuga.js"></script> 例2:アコーディオンのみ動作する <script type="text/javascript" src="../js/jquery.js"></script> <script type="text/javascript" src="../js/yuga.js"></script> <script type="text/javascript" src="../js/prototype.js"></script> <script type="text/javascript" src="../js/effects.js"></script> <script type="text/javascript" src="../js/accordion.js"></script> これら2つの機能を同時に使用するにはどうすればいいでしょうか?

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

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

こんばんは ><a href="sample.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','sample_on.gif',0)"><img src="sample.gif"></a> これってスクリプトを利用してるのではないのでしょうか? MM_swapImgRestore()とMM_swapImage()がどこかにあるはずですけど・・・ 中身はわかりませんが、引数を見ているとなんとなくロールオーバーのような気がするのですが、ひょっとして違いますか? ロールアップだと画面があるところまで連続的にスクロールする感じ。 ロールオーバーだと画像などの上にマウスを乗せると、画像が変わったり、一部に画像を上乗せしたり・・・という感じです。 もしも後者ならば、スクリプトでも、CSSでもサンプルはたくさんありますが、なさりたかったことはこんなことだったりして?   http://css-eblog.com/csstechnique/css-2.html   http://hac-design.com/css/rollover.html

k-kazun
質問者

補足

fujillin様 ロールアップとロールオーバー、同じ効果だと思っていました。 まだまだ素人ですね・・・すみません(-_-; fujillinさんのおっしゃるとおり、やりたかったの「ロールオーバー」です。 さっそくサンプルを見させていただきました。 こちらの方が簡単に実現できそうですし、 まだ検証はしていませんが、アコーディオンとの併用でも不具合がなさそうです。 今回は、このCSSでロールオーバーさせる方法で作りたいと思います。 とても参考になり、また勉強になりました。 ありがとうございます。

その他の回答 (3)

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

#2です。 こんばんは。 >ロールアップ部分をHTML内部に記述する方法では、~~ ということは、ロールアップを自作されたということでしょうか? prototypeかjqueryを利用して(利用しなくてもいいですが)別に作ってしまうという案も書こうかと思ったのですが、大変かと思って省略していました。 すでに実現なさっているようなので、それなら話は簡単です。 作成されたスクリプトを外部ファイルにして、他のスクリプトと同様に読み込むようにしておけば、HTML内にコードはでませんし、多少長かろうが影響はありませんので、HTMLの更新の際に混乱することはないでしょう。  (コード部分だけをテキストファイル化して、○○.jsとしておけばよい) もっとも、メニュー部分で効果を使用しているのでしょうから、いずれにしろ、(更新時に)変ないじくり方をすればおかしくなってしまいそうですが・・・ それを言ったら、HTMLだって変に修正すればおかしくなるから同じかも。

k-kazun
質問者

お礼

fujillin様 何度もご回答いただき、ありがとうございます。 ロールアップ部分は、厳密に言うと自作ではありません。 記述内容はヘッダー部や外部ファイルなどでのJavaScriptは使用せずに、 リンクコード部分に以下のように記述することで実現しています。 <a href="sample.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','sample_on.gif',0)"><img src="sample.gif"></a> これは、ホームページ作成ソフトDreamweaverで作成できるロールオーバーイメージの作成機能です。 今まで、自分でもパッケージ化されたスクリプト(Jqueryなど)で実現できないかと思い、 いろいろと調べましたが、どうやら共有できるようなものが内容なので、 今回はこの方法で対応したいと思います。 いろいろお手数をおかけしました。 また何かありましたら、ご教授お願いいたします。

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

こんにちは。 単に名称がダブっている程度なら、名前を変更すれば済みますが、少し複雑になるとかなり大変だと想像されます。 ホームページのレイアウトにもよりますが、それぞれが入り組んでレイアウトされているのでなければ、片方を含む一部をIframeなどにしてしまうことで、HTMLを分けてしまえば多分うまくいくのでは?(それぞれに必要なjsのみ読み込む) パッケージの中身を追いかけたりいじくったりするよりは、こんな対処の方が簡単だと思います。

k-kazun
質問者

補足

fujillin様 何度もご回答いただき、ありがとうございます。 レイアウトについては、ヘッダー部に横並びの画像メニュー。 サイドバー部に折りたたみ式のサブメニューをと考えています。 fujillinさんのおっしゃる通り、各パッケージの中身を改造するとなると、 それなりに知識も必要で、かなり難しいかと思います。 ただ、インラインフレームの使用については、 確かに、一番簡単な対処法だと思います。 しかし、フレームの枠サイズが固定されるという使い勝手の悪さや、 個人的な好みの問題から、あまり使用したくないと思っています。 できれば、上記2つの機能が共有できる、 それに変わるパッケージ、または外部JSなどがあればと思っています。 そこまでこだわっている理由は、HTMLの簡素化をして、 HTMLの知識のない人でも、ある程度簡単に更新できるようにしたい為です。 ロールアップ部分をHTML内部に記述する方法では、 アコーディオンもふくめ、両方とも動作することは確認できました。 ただ、やはりコードがかなり長くなってしまい、 これでは、知識のない方はメニュー部分の更新ができなくなる可能性があるので、 できれば避けたいと考えています。 何か、いろいろと難しい質問を出してしまい、申し訳ありません。 本件を解決できる、最善の方法があれば、ご教授ください。

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

内部を見たことがありませんが、それぞれのパッケージで、定義などがバッティングしているってことはありませんか? 試したことはないけれど、後から定義した方が優先されそうな気がします。

k-kazun
質問者

補足

fujillin 様 ご回答ありがとうございます。 私もそれぞれのパッケージの中身までは理解しておりません。というか、恥ずかしながらそこまでの知識がありません。 ご指摘の通り、確かに何かがバッティングしていて、後述のスクリプトが優先されているようです。 上記では、少し説明不足だったかもしれません。 ロールアップでは、画像のタグに class="btn" を付加することで動作させています。 また、アコーディオンは、 アコーディオン全体を「id="accordion"」で、 タイトル部に「class="toggle"」内容記載部に「class="content"」を記述して定義しています。 その後も、いろいろ試していますが、未だに解決できません。

関連するQ&A

  • prototype+jquery+プラグイン

    prototype.jsとjqueryとプラグイン系の読み込み方が良くわかりません。 クロスブラウザ対応のMP3プレイヤーを導入したく追加したのですが 順番を並べ変えたりいろいろしましたが導入する事ができずにこまっています。 何かいい方法はないでしょうか? エラーの内容も順序によって様々です・・・・ <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript" src="lightbox.js"></script> <script type="text/javascript" src="lightbox_shortcut_keys_addon.js"></script> <script type="text/javascript" src="slide3/script/jquery-1.2.2.js"></script> <script type="text/javascript" src="jquery.cycle.all.js"></script> <script type="text/javascript" src="jquery.easing.1.3.js"></script> <script type="text/javascript" src="jquery.jcarousel.pack.js"></script> <script type="text/javascript"> jQuery.noConflict(); var $j = jQuery; </script> 以下追加===================================================== <script type="text/javascript" src="jquery-1.4.2.js"></script> <script type="text/javascript" src="jquery.compat-1.3.js"></script> <script type="text/javascript" src="jquery.jplayer.min.js"></script> <script type="text/javascript"> jQuery.noConflict(); var $j = jQuery; $j(document).ready(function(){ $("#mp3").jPlayer(); }); </script>

  • 教えてください! lightboxとskitter

    javascriptがまだよく理解できていないので、 愚問に思われるかもしれないですが、上手く動作しなくて困っています。 <head>内に下記のように記述したのですが、lightboxが上手く作動しません。 記述に問題があるんでしょうが、調べても全くわからないので こちらに投稿させていただきました。 どなたかこの問題の解き方をお教えください。 よろしくお願いします。 <link rel="stylesheet" type="text/css" href="css/lightbox.css"> <!--lightbox--> <script src="js/prototype.js" type="text/javascript"></script> <script type="text/javascript" src="js/builder.js"></script> <script type="text/javascript" src="js/effects.js"></script> <script type="text/javascript" src="js/lightbox.js"></script> <script type="text/javascript" src="js/smartRollover.js"></script> <!--smartRollover--> <script type="text/javascript" src="js/jquery.quickflip.source.js"></script> <link rel="stylesheet" type="text/css" href="css/skitter_css/skitter.styles.css"> <!--Skitter--> <style type="text/css"> .box_skitter_large{ width:490px;height:190px; } </style> <script type="text/javascript" src="js/skitter_js/jquery-1.5.2.min.js"></script> <script type="text/javascript" src="js/skitter_js/jquery.skitter.js"></script> <script type="text/javascript" src="js/skitter_js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/skitter_js/jquery.animate-colors-min.js"></script> <script type="text/javascript"> $(function(){ $('.box_skitter_large').skitter({interval: 8000}); <!--数字を大きくするとSkitterの時間がゆっくりになる--> //$('.box_skitter_large').skitter({thumbs: true, label: false,}); }); </script>

  • 複数jQueryの配置で干渉 設置位置

    Javascript事は全くわかりませんが、色々なプラグインとしてjQueryを利用しています。 ----------------- jQueryに干渉があったようで、正常に動作させたいのですが、疑問があります。 1サイト目(HTML 最下部に配置) <script src="vendor/jquery.min.js" type="text/javascript"></script> <script src="js/layout.min.js" type="text/javascript"></script> 正常に動作します。 2サイト目(HTML head内に配置) <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="js/abcd.js" type="text/javascript"></script> 正常に動作します。 上記の2サイトを合体させた:(HTML 最下部に配置) <script src="vendor/jquery.min.js" type="text/javascript"></script> <script src="js/layout.min.js" type="text/javascript"></script> <script src="js/abcd.js" type="text/javascript"></script> すると、 layout.min.jsに不具合がでるようです・・・ <script src="vendor/jquery.min.js" type="text/javascript"></script> <script src="js/layout.min.js" type="text/javascript"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="js/abcd.js" type="text/javascript"></script> でも、ダメです。 <script src="vendor/jquery.min.js" type="text/javascript"></script> を <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> に変更してもダメでした。 tel.js内を、 jQuery.noConflict(); (function($) { $(function(){ を $j に変えたり、 jQuery に 書き替えてもダメでした・・・ そこで、以下のように移動しましたら動作しました。 (HTML header内に配置) <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="js/abcd.js" type="text/javascript"></script> (HTML 最下部に配置) <script src="vendor/jquery.min.js" type="text/javascript"></script> <script src="js/layout.min.js" type="text/javascript"></script> 上記のように、 HTML head部と、HTML 最下部に分けるのは、正しい方法なのでしょうか?

  • このHTMLの意味はなんでしょうか?

    <script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="scripts/jquery.queryloader2.js"></script> <script type="text/javascript" src="scripts/jquery.parallax-1.1.3.js"></script> <script type="text/javascript" src="scripts/jquery.localscroll-1.2.7-min.js"></script> <script type="text/javascript" src="scripts/jquery.scrollTo-1.4.2-min.js"></script> <script type="text/javascript" src="scripts/jquery.easing.1.3.js"></script> <script type="text/javascript" src="scripts/jquery.scrollorama.js"></script> <script type="text/javascript" src="scripts/jquery.scrolldeck.js"></script> <script type="text/javascript" src="scripts/jquery-contained-sticky-scroll.js"></script> <script type="text/javascript" src="scripts/lightbox.js"></script> <script type="text/javascript" src="scripts/parallax01.js"></script> <script type="text/javascript" src="scripts/yazirusi01.js"></script> <script type="text/javascript" src="scripts/jquery.mousewheel.js"></script> <script type="text/javascript" src="scripts/jquery.easie.js"></script> <script type="text/javascript" src="scripts/jquery.smoothScroll.js"></script> <script type="text/javascript" src="scripts/php_date.js"></script> <script type="text/javascript" src="scripts/script.js"></script> とあるサイトのソースの一部に、このような文章が書かれていました。 一体これはどういう意味なんでしょうか? どなたか解説お願いします

    • ベストアンサー
    • HTML
  • javascriptの外部ファイル読み込みの不具合

    質問させて頂きます。 javascript初心者です。 現在サイト作成にあたり、jsを組み込んでおります。 ajaxmailを設置しようと、参考サイトの手順通りに行ったのですが、 <script type="text/javascript" src="./js/protoculous-effects-packer.js"></script> の記述をすると、他のjsが動作しなくなってしまいます。 現在読み込んでいるものをコピペさせて頂きます。 <script src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script src="./js/mapstyle.js"></script> <script src="./js/modernizr.custom.min.js"></script> <script src="./js/jquery-1.10.2.js"></script> <script src="./js/hoge.js"></script> <script src="./js/jquery.smooth-scroll.min.js"></script> <script src="./js/jquery-ui-1.10.3.custom.min.js"></script> <script type="text/javascript" src="./js/protoculous-effects-packer.js"></script> <script type="text/javascript" src="./js/lightview.js"></script> 下2行がajax設置の際に読み込むものです。 lightview.jsだけの場合は機能しています。 どなたかご教示の程、よろしくお願い致します。

  • 複数のjQueryを導入するには…?

    見てくださってありがとうございます。 サイトにスムーススクロールとフォトギャラリーのjQueryを入れたのですが片方が動きません。 ------------------------- <!-- スムーススクロール↓ --> <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="js/test.js"></script> <!-- フォトギャラリー↓ --> <link href="css/lightbox.css" rel="stylesheet" type="text/css" media="screen" /> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> ------------------------- コードは上記のように記述してありあます。 スクロールはhttp://klutche.org/archives/536/様のを使用、、 フォトギャラリーはhttp://myisland.jp/様のフォトギャラリーSample#2を使用しています。 片方消すと正常に動くのでコードは間違っていないと思いますが なぜjsフォルダに一個一個入れて呼び出しているのに動かないのかわかりません。 head内にバージョン違いのjQuery本体を呼び出すと動かなくなるのは知っていますが この場合本体は一個しか呼び出していないですよね・・・? プログラムさっぱりでとても困っています。 解決策よろしくお願いします。

  • 【javascript】2つ同時に上手く動かない

    javascript初心者です。 現在作成している画面に2つのjavascriptを動かしたいと思っております。 しかしながら、一つずつでは動くのですが、同時に表示すると上手く動作しません。 いい方法などありましたらご教授お願い致します。 【htmlのヘッド】 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.coda-slider-2.0.js" charset="utf-8"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/sm_scroll.js"></script> <script type="text/javascript" src="js/jcaption.min.js"></script> <script type="text/javascript" charset="utf-8"> $(function(){ $('#coda-slider-1').codaSlider({ autoSlide:false, autoHeight:false, autoSlideStopWhenClicked:false, autoSlideInterval:10000, firstPanelToLoad:1, dynamicArrows: false, }); }); </script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> 【上部のjavascript】 Coda-Slider 参照URL:http://phpjavascriptroom.com/exp3.php?f=include/ajax/jquery_plugin_slider/coda_slider.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB 【下部のjavascript】 litebox 参照URL:http://lokeshdhakar.com/projects/lightbox2/ javascript内が初期化されているのが問題なのでしょうか? 解決の方法などありませんでしょうか? 以上、宜しくお願い致します。

  • liteboxと滑らかスクロールが同時処理出来ない

    javascriptのliteboxと滑らかスクロールを1ページ内で行うことができません。 head内スクリプトタブ <!--滑らかスクロール--> <script type="text/javascript" src="js/jquery.js" charset="utf-8"></script> <script type="text/javascript" src="js/jquery.page-scroller.js" charset="utf-8"></script> <!--litebox--> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <script type="text/javascript" src="js2/prototype.js"></script> <script type="text/javascript" src="js2/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js2/lightbox.js"></script> イメージタグ <a href="images/image-1.jpg" rel="lightbox"><img src="images/thumb-1.jpg" width="100" height="40" alt="" /></a> ライトボックスのバージョンはlitebox2.0 滑らかスクロールは下記サイトからダウンロードさせて頂いたものを使ってます。 http://coliss.com/articles/build-websites/operation/javascript/296.html 一方のスクリプトタグをコメントで囲むと囲んでいない方のスクリプトが機能します。 また、下の方に記述したスクリプトが機能します。なので上記の場合、liteboxは機能し、滑らかスクロールの方は機能しません。 両方機能させるにはどうしたらよいのでしょうか? ジャバスクリプトは初めて使うのであまり詳しくありません。 ご教授お願い致します。

  • アコーディオンについて質問です。

    http://saiyo.919.jp/member/index.html こちらのサイトの社員をクリックするとアコーディオンの様に開き下に情報が出ます。 ソースを見たのですが、オリジナルでコードを書かれています。 <script type="text/javascript" src="../js/staff.js"></script> ↓ staffUnit オリジナルなので使用する事ができないため、こちらのアコーディオンと同じようなフリーのjqueryはあるのでしょうか。 / / / / / / / / / / / / / 1)アコーディオンを使用して作成してみました。 dtにフロートをかけ並べ ddをwidth100%にしてみたのですが、下記のURLの様にくずれてしまします。 http://www.akijapan.net/test/ 2)position:absolute;で設定したところdtの内容が、下のアコーディオンが優先されてしまい切り替わりません。 http://www.akijapan.net/test2/

  • javascriptファイルは1つに統合できますか

    javascript初心者のため、どなたかご教示いただけるとありがたいです。 html内に外部javascriptファイルを読み込むようにscript要素で記述しているのですが、複数の外部jsを読み込んでおり、可能であればhtml内の記述を簡略化したいと思っております。 <現状> <script type="text/javascript" src="・・・/js/jquery.js" charset="utf-8"></script> <script type="text/javascript" src="・・・/js/jquery.page-scroller.js" charset="utf-8"></script> <script type="text/javascript" src="・・/js/jquery.cookie.js"></script> <script type="text/javascript" src="・・・/js/ui.core.js"></script> <script type="text/javascript" src="・・・/js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="・・・/js/jquery.scrollfollow.js"></script> <script type="text/javascript" src="・・・/js/jquery.bxslider.js"></script> <script type="text/javascript" src="・・・/js/set_slider.js"></script> ・・・ jsに対する基礎的な質問ですが、上記のような複数の外部jsファイルを、1つの外部jsファイルにまとめることは可能なのでしょうか? (単純に1箇所にコピー&ペーストするようなイメージで) お手数ですが、ご教示のほど、宜しくお願い致します。

専門家に質問してみよう