• ベストアンサー

開閉式をページ内の通常のHTMLにしたい

JavaScriptで開閉式をページ内の通常のHTMLタグにするにはどうしたらいいでしょうか? この目次を作るJavaScriptですが右上の目次を押すと開閉します。 http://www.skuare.net/test/jToc.html これを開閉式ではなく、通常のHTMLファイルのように任意の位置にタグが生成されるようにしたいのですがどこを変更すればいいでしょうか? http://www.skuare.net/test/js/jquery.jqTOC.js よろしくお願いいたします。 この質問に補足する

  • cute9
  • お礼率15% (2/13)

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

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

jsファイルの内容は見てませんが… ◇方法1 jsの内容を解析して、自分の利用しやすいようにカスタマイズする。 ◇方法2 ご質問の内容程度であれば、まず、もともとの機能にある、tocAutoClose、tocShowOnClickをoffに指定することで開閉しなくなります。 さらに、目次部分はdiv id="toc_container"としてposition:absoluteで追加されているみたいですから、一旦、目次を作成させておいて、後からdiv全体を好きな位置に移動させてしまうということにすれば、方法1のような解析やカスタマイズが不要になると思われます。 例えば、表示したいところに  <div id="box_for_toc"></div> を置いてあるとして、  $("#toc_container").css("position", "static");  $("#box_for_toc").append($("#toc_container")); で、そのdivの中に目次が移動します。 大元の配布元は(オプション設定なども)こちら  http://solidgone.org/Jqtoc ところで、『 この質問に補足する 』ってなあに?

cute9
質問者

お礼

ありがとうございました。

cute9
質問者

補足

ご回答ありがとうございます。 開閉しないでロードしたときに最初からずうっと表示させたままにすることや好きな位置に表示することは出来たのですが、 その方法の表示位置指定だと、いちいちpaddingのtopやleftといったもので表示位置をピクセル指定しないといけないので汎用性が悪くなり、変更したいと思っています。 たとえば、ページによってヘッダーに大きな画像をせたりした場合は重なって汎用性が低くなります。 たとえば、先のサンプルサイトでスタイルシートにpadding-topを100pxにしたら、100ピクセル下に表示されますが、それだとコンテンツの量が変わっても必ず上から100ピクセル下に目次が表示されます。 本文の場合は相対的にヘッダーの分量により、位置が自動的に変わります。それと同じようにしたいです。 また広告がつくサイトの場合は、その広告の位置によってヘッダーのサイズが変わって絶対位置指定している目次と重なったりします。 ページの分量自体は個々のページによって変わってくるので絶対位置では困ります。 絶対位置指定になってしまう問題は見る人の画面のサイズによってオートセンタリングしたい場合も絶対位置なので必ずピクセルで指定した決まった位置になるのでセンタリングができません。 初期のように絶対位置指定しかできないのではいちいちコンテンツが変わる度にピクセルで位置を指定の設定をしなければならないので、使い勝手が悪いです。 そこで本文と同じようにヘッダーの量が変われば自動的にtopの位置も変わるようにしたいのです。別のWindowが重なるのではなく、本文と同じようにひとつのHTMLファイルにインクールドさせるのと同様にしたいです。 3カラムのナビにして、そのうち右の指定したdivの位置に目次が表示させるように変更したいです。その方法ならすべて絶対位置による不具合が解決できるためです。 いちいちピクセルで表示位置を指定する場合は汎用性が悪すぎてページごとにスタイルシートを設定しなければならなくなり困っております。 そこで別のWindowが重なるのではなく、本文と同じようにインクルードするような形に変更したいです。その場合だとページの量に関係なく、位置が調整されて使い勝手が良いです。 そういう方法に変更は可能でしょうか? よろしくお願いいたします。

その他の回答 (1)

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

#1です。 補足の意味がつかめません。 ソース中の指定div内(divでなくてもいいけど)に移動させる方法として、回答したつもりですけど? >そういう方法に変更は可能でしょうか? どこが違うのかわかりません。 目次は指定divの中に入れてしまうので、指定divのレイアウトに従います。 そのdivをどのようにレイアウトさせるのかは質問者様が決めることなので、私には想像ができません。

関連するQ&A

  • 外部に用意したHTMLファイルを他のHTMLのページに読み込みたいので

    外部に用意したHTMLファイルを他のHTMLのページに読み込みたいのですが… いろいろ調べてみたんですが、prototype.jsで読み込む方法を見つけました。 URL http://sevenstyleweb.com/blog/2008/05/prototypejshtml.html ただこの場合、読み込む元のhtmlファイルに<head>タグや<body>などが含まれている場合はそれも全て読み込む先に反映されてしまうのでしょうか? 読み込む元のファイルの任意の部分だけ(ID指定した<div>のみなど)を指定する事はできないのでしょうか?その方法があれば教えて下さい。 またprototype.jsでなくても、他のAjaxやjavascriptの方法があれば教えて下さい。お願いします。

  • 開閉式メニューのhrefが効かない

    お世話になります。 下記のようなソースでドロップダウンメニューを作って、 動作はしたのですが、肝心のメニューをクリックした時に該当するhtmlファイルに飛びません。 初歩的なことで申し訳ないのですが、サブメニュー内のaタグを動作させるには何か足りないものがあるでしょうか? 教えていただければ助かります。 js <script type="text/javascript"> $(function(){ $("#header-bn").click(function(){ $("#backnumbers").slideToggle(); return false; }); }); </script> HTML <ul> <li>メニュー1</li> <li>メニュー2</li> <li id="header-bn"><a href="september.html">メニュー3</a> <ul id="backnumbers"> <li><a href="8.html">8</a></li> <li><a href="7.html">7</a></li> </ul> </li> </ul> おそらくはhead内に記述したreturn false;の記述で aタグのhref要素が無効にされてしまうと思うのですが、 jsには詳しくなく、単純に削ってしまうと開閉メニューが 機能しなくなるので、これをどう書き換えたらリンクが機能する 開閉式メニューが作れるかお知恵を頂ければ助かります。 よろしくお願い致します。

  • Jqueryのajaxを用いてHTMLの読み込み

    こんにちは。 Jqueryのajaxで広告向けのJavaScriptが記述されたhtmlを取得し、関数【$("#ID").html(htmlソース);】を用いて、HTMLを読み込んだ際に、それに記述されているJavaScriptが動作してくれません。 読み込むHTMLに記述されているJavaScriptは以下です。 <script type="text/javascript" src="//xml.affiliate.rakuten.co.jp/widget/js/rakuten_widget.js"></script> ご存知の方がいらっしゃいましたら、教えて頂きたいです。

  • cmsをつかって吐き出されたHTMLファイルの中身を、別のページで共有

    cmsをつかって吐き出されたHTMLファイルの中身を、別のページで共有したいと考えております。 実際には共通のサイドメニューの部分をCMSで生成して、一つのhtmlファイルとして生成し、そのhtmlファイルの中身を共通する各ページの部分に読み込みたいのですが。。 SSIやphp、javascript、iframeなどを使ってhtmlファイルを外部から読み込む為の方法がいくつかありますが、自動で生成されたHTMLファイルの、任意の部分だけ(bodyタグ以下のソースだけ、IDを指定しているdiv部分のみなど)を指定して読み込む方法があれば教えてください。 サーバーの負荷も考えるとできれば、ssiではなくjavascriptで実行できればと考えております。どなたか教えて下さい、お願いします。

  • HTMLをWordPress化 CSSをどこに?

    HTMLをWordPress化にするための勉強をしています。 HTML側 CSS ヘッダー内 <link rel="stylesheet" href="css/test.css"> <link rel="stylesheet" href="css/test2.css"> JS ヘッダー内ではなく一番下</body>の前に配置 <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> <script src="js/test1.js"></script> <script src="js/test2.js"></script> ★これをfunctions.php に記述するにはどうすれば良いのでしょうか? function sample_scripts() {   // CSSの読み込み   wp_enqueue_style( 'jdsa-style', get_template_directory_uri().'/css/test.css', array(), '1' );   wp_enqueue_style( 'jdsa-style', get_template_directory_uri().'/css/test2.css', array(), '1' );   // jqueryの読み込み wp_deregister_script( 'jquery' ); wp_enqueue_script( 'jquery', get_template_directory_uri().'https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js', array(), '1.10.3', true );   // サイト内のjsの読み込み   wp_enqueue_script( 'jdsa-script', get_template_directory_uri().'/js/test1.js', array(), '1', true );   wp_enqueue_script( 'jdsa-script', get_template_directory_uri().'/js/test2.js', array(), '1', true ); }//ここまで 結果 ヘッダー内にtest.cssのみ記載、test2.cssは記載していない。 jsはどこにも記載していませんでした。 どこが間違っておりますか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 同HTML内で2種のJ-Queryを使用したい

    複数のjQueryを使用し、タブメニュータイプのものと自動スライドショータイプのを 同じHTML内にいれようとしていますが、1つのみしか作動せずJavaScriptエラーがでてしまいます。 片方ずつで行うと作動するのですが、同じHTMLに2種組み込むとうまくいきません。 同じ質問があり参考にさせて頂いたのですが良くわかりません。 複数使う場合の記述方法があるということもサイトで知ってやってみたりしたのですがうまくできませんでした。 http://stacktrace.jp/jquery/with_other_lib.html 使用しているものは以下です。 -------------------------------------------- <!-- jQuery --> <script type="text/javascript" src='/js/J-Query/jquery-1.5.2.min.js'></script> <!-- ナビ --> <script type="text/javascript" src='/js/J-Query/jquery.color-RGBa-patch.js'></script> <script type="text/javascript" src='/js/J-Query/example.js'></script> <!--スライダー--> <script type="text/javascript" src="/js/J-Query/jquery.flexslider.js"></script> <script type="text/javascript"> $(function(){ SyntaxHighlighter.all(); }); $(window).load(function(){ $('.flexslider').flexslider({ animation: "slide", start: function(slider){ $('body').removeClass('loading'); } }); }); </script> <script type="text/javascript" src="/js/J-Query/shCore.js"></script> -------------------------------------------- <!-- ナビ --> グローバルナビで使用 参照元 http://css-tricks.com/examples/MagicLine/ の下の方です。 <!--スライダー--> スライダーで使用 参考元 http://flexslider.woothemes.com/ お手数ですがどなたか教えて頂けると幸いです。

  • 複数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 最下部に分けるのは、正しい方法なのでしょうか?

  • JavaScriptの外部ファイル読み込み

    JavaScriptの外部ファイル読み込みについてご教授下さい。 現在、Webサイトを作ろうとPHPとJavaScriptをレンタルサーバーにアップしたのですが、 ローカルではPHPから外部ファイルのJavaScriptを読み込めるのに、 サーバーにアップするとPHPからJavaScriptを読み込めなくなってしまいます。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>TEST</title> <meta charset=utf-8" /> <script type="text/javascript" src="./js/jquery-1.4.2.min.js"></script> ・・・ 上記のようにしてもjquery-1.4.2.min.jsが読み込まれず、jQueryが使えません。 FireBugでスクリプトを確認すると以下のようなエラーが出ていました。 1Failed to load source for: http://xxx.my-sv.net/js/jquery-1.4.2.min.js ちなみに以下のようにJavaScriptファイルを開こうとするとブラウザは真っ白なのですが、 http://xxx.my-sv.net/js/jquery-1.4.2.min.js テキストファイルに変更したものだと中身を見ることができました。 http://xxx.my-sv.net/js/jquery-1.4.2.min.txt ブラウザはFireFox3.0.11とIE8.0の両方でダメでした。 なぜJavaScriptファイルだけ読み込めないのでしょうか。 ご教授お願いいたします。 ※ちなみに、別のレンタルサーバーにアップロードしたら問題なく読み込めました。 しかし、そこにはDBがなかったので、なるべく今のレンタルサーバーを使いたいのです。。

  • 自動目次生成で特定の見出しだけ表示させたい

    自動目次生成で特定の見出しタグ<h4>だけとかを閲覧者が選ん絞り表示させるように出来ますでしょうか?これができれば<h4>は動画だけにつけているタイトルとかなら閲覧者は動画の見出しだけを表示させることが出来ます。 使っているのはJavaScriptのjQueryのjqtocです。 機能の付け方がわかりません。 よろしくお願いいたします。

  • JavascriptとJqueryを混在し記述

    JavascriptとJqueryが混在したスクリプトファイル(.js)の書き方について質問です。 Jquery自体がjavascriptで書かれており結局はjavascriptであるということは理解していますが 気になるので質問させてください。 通常、javascriptの書き方として、スクリプトやその関数定義を1つのjsファイルに書くと思いますが、 Jqueryが混在しても考えは一緒で、ただ、ページが全て読み込まれた後(要素を特定できるようにするため)に実行したい場合の スクリプトを $(function(){ //Jquryや通常のjavascript }); の中にこのように書けばいいって話ですよね? つまり1つのjsファイル内に以下のようにスクリプトを混在させた書き方でもいいのですよね? ===== script.js ====== //(1)Javaスクリプト ←jsファイルが読み込まれたら実行するスクリプト //関数定義 function test(){ //Javaスクリプト } //(2)Jquery ←ページが全て読み込まれた後で実行するスクリプト $(function(){ //Jqueryスクリプト //Javaスクリプト }); 初歩的なことかもしれませんがすいません。