• ベストアンサー

タブメニューの解除方法

http://archiva.jp/web/javascript/tab-menu.html 上記アドレスにあるタブを使用したいと思っているのですが、 タブ表示、そうではない一覧表示をプルダウンにて切り替えが 出来ればなぁと考えております。 どなたか方法を教えていただければと思います。 宜しくお願いいたします。

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

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

#1です。 >ちなみに「一覧」にしたときにpresentをデフォルト(押してないタブ)と >一緒の扱いにしてアンカーリンクを動作させる事はできるのでしょうか? ご質問の意味がよくわかりませんが、要は通常のアンカーリンクみたいに表示位置をスクロールしたいという意味でしょうか? 一覧表示のときに、タブをクリックするとその内容までスクロールさせるのなら、 showpage: function(obj){ var tabs = this.setup.tabs; var pages = this.setup.pages; var num; for(num=0; num<tabs.length; num++) { if(tabs[num] === obj) break; } if (!this.flag) { if (pages[num]) pages[num].scrollIntoView(false); return; } for(var i=0; i<pages.length; i++) { if(i == num) { pages[num].style.display = 'block'; tabs[num].className = 'present'; } else{ pages[i].style.display = 'none'; tabs[i].className = null; } } }, さらに、一覧に表示を切り替えたときに、presentのタブに相当する内容部分を表示するようにもするなら、 tabswitch: function(obj) { var i, tabs = this.setup.tabs, pages = this.setup.pages; obj.innerHTML = this.flag?'タブ表示':'一覧表示'; this.flag = !this.flag; if (!this.flag) for (i=0; i<pages.length; i++) pages[i].style.display = 'block'; for (i=0; i<tabs.length; i++) if (tabs[i].className == 'present') break; this.showpage(this.setup.tabs[i<tabs.length?i:0]); } *)element.scrollIntoView(); が通じない古いブラウザもあるかも… scrollIntoView()とscrollIntoView(false)のどちらが良いのかは、意図が不明なのでよくわからない。 ここまで変わってくると、作り直しのほうがよさそうな気が…

その他の回答 (1)

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

極簡単なマイナーチェンジ程度なら… タブ表示と一覧表示のフラグでも作成しておいて、フラグが立っていればタブの機能を動作、そうでなければ処理しないようにでもしてあげるというのではどうでしょうか? フラグの切替えの際に非表示のタブを表示してあげるようにするとかが必要になるけど。 例えば、 (1)切替用のボタンとしてHTMLに <button type="button" onclick="tab.tabswitch(this)">一覧表示</button> みたいなのを追加 (2)現在のコードの修正(flagに応じて動作/非動作となるように) init: function(){ の次の行に  this.flag = true; showpage: function(obj){ の次の行に  if (!this.flag) return; をそれぞれ追加 (3) var tab に切替え機能(tabswitch)を追加 tabswitch: function(obj) { var i, tabs = this.setup.tabs, pages = this.setup.pages; obj.innerHTML = this.flag?'タブ表示':'一覧表示'; if (this.flag = !this.flag) { for (i=0; i<tabs.length; i++) if (tabs[i].className == 'present') break; this.showpage(this.setup.tabs[i<tabs.length?i:0]); } else { for (i=0; i<pages.length; i++) pages[i].style.display = 'block'; } } ・・・で、とりあえずいけるけれど、ちゃんとやるなら、それほど長いコードでもないので、作り直してしまったほうがよいかも。

hunter_999
質問者

補足

ありがとうございます。 しっかり動作しました!! ちなみに「一覧」にしたときにpresentをデフォルト(押してないタブ)と一緒の扱いにしてアンカーリンクを動作させる事はできるのでしょうか?

関連するQ&A

  • JavaScriptでタブメニューを実装したいと思っています。

    JavaScriptでタブメニューを実装したいと思っています。 http://archiva.jp/web/javascript/tab-menu.html 上記サイトよりソースを頂いて実装したいと考えているのですが、こちらのサイトでは5つタブがあるため配列を使用しています。 今回実装したいページは、タブが2つのみなので配列は必要ないかと思いました。 色々調べても勉強不足のためどうしても条件分岐に書き換える方法が分からなく行き詰ってしまったため、お力添え頂きたく質問させていただきました。 大変申し訳ないのですが、教えていただければありがたいです。 どうぞ宜しくお願い致します。

  • 一覧をタブメニューで絞り込んで表示

    JavaScriptは初心者で、ごく簡単な表示非表示切り替えや、画像きりかえぐらいしかできません。ご教示ください。 複数のボックスがあります。 このボックスは5ほどにカテゴリー分けがされており、一覧表示されています。タブのメニューで選択したら対応するカテゴリーのボックスのみが表示されるようにするには、一つのhtmlファイルとjavascriptだけでできますか。 http://oshiete1.watch.impress.co.jp/qa3018153.html こちらの質問と回答を見たのですが、プルダウンメニューではなくaタグで切り替えたいです。class名で取得する方法も調べましたが、わかりませんでした。 よろしくお願いいたします。

  • タブ切替

    下記サンプルを使ってタブ切替のページを作成したのですが、 タブだけでなく、ページ内に「次へ」「戻る」ボタンを追加する方法を教えてください。 ■タブ切替ページ http://archiva.jp/web/javascript/tab-menu.html ■追加内容 page1 最下部に「次へ」のボタンでpage2へ page2 最下部に「戻る」のボタンでpage1、「次へ」のボタンでpage3へ よろしくお願いいたします。

  • jQueryの画像を使ったタブメニューについて

    下記のサイトを参考にタブメニューを制作いたしました。 jQueryを使ったタブ(画像)による画面切り替え http://web.showjin.me/2011/05/jquery_tab_image.html 各コンテンツの中にリストタグやpタグなどで内容を記載すると うまくいくのですが、divタグを使用するとまったく表示されないようです。 divタグに style="display: none;"と読み込まれてしまいます。 各コンテンツの内容にjqueryを使用してサムネイルのアルバムを設置したいと 思っているので、divタグなどでも問題なく表示されるようにしたいと思っています。 scriptを修正して実現できる方法が分かる方がおられましたら お教え頂けないでしょうか? どうぞ宜しくお願い致します。

  • jQueryタブメニュー内へのリンク方法。

    javascript勉強中です。 調べたり試してみたりしたのですが、なかなか上手くいかず質問させていただきました。 下記のjQueryを使ったタブメニューなのですが、他のページからタブ内(tab1~tab3)へリンクさせるjavascriptの書き方や方法を教えていただけないでしょうか。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> $(function($) { $(".area").hide(); $(".tab_content").hide(); }); jQuery.event.add(window,"load",function(){ $(".tab01 li:first-child").addClass("active"); $(".area:first-child").show(); $(".tab01 li").each(function(i){ $(this).click(function(){ $(".content .area").hide(); $(".content .area").eq(i).fadeIn(400); if($(this).hasClass("active")){ $(".tab01 li").removeClass("active");} else {$(".tab01 li").removeClass("active"); $(this).addClass("active"); } }); }); }); </script> </head> <body> <div> <ul class="tab01"> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> <div class="content"> <div class="area" id="tab1">tab1</div> <div class="area" id="tab2">tab2</div> <div class="area" id="tab3">tab3</div> </div> </div> </body> </html> どうぞ宜しくお願い致します。

  • Firefoxで全タブを縦に一覧表示できるアドオン

    Firefoxで全タブを縦に一覧表示できるアドオンを探しています。 Chromeの「Tab Menu」に当たるものです。 http://ameblo.jp/googlechrome/entry-10491669263.html Firefoxにも似た「Tabs Menu」というアドオンがあるのですが、 こちらの方はタブ一覧からタブを閉じることができないからダメなのです。 開き過ぎたタブ(数百)を縦表示の一覧からどんどん閉じていきたいのです。 どなたかよいアドオンをご存知の方いましたら教えてください。 よろしくお願いします。

  • タブ切替えメニューの懸念点について教えてくだい

    いつもお世話になっています。 WEBサイトのリニューアルを計画しています。 予定では、以下のような遷移を考えており、コンテンツ2、もしくは、コンテンツ3に 最終の情報が入ります。 トップメニュー > コンテンツ1 > コンテンツ2 ( > コンテンツ3 ) コンテンツ1、コンテンツ2は、1ページあたりの情報量が多く、長いページになる 予定なので、以下のサイトのようなタブ切替メニューを利用しようと考えています。 http://archiva.jp/web/javascript/tab-menu.html カテゴリ1 と カテゴリ2 両方のページでタブ切替えメニューを使った場合、 ユーザービリティの面やその他の面で懸念することがあれば ご教示いただきたいです。

    • ベストアンサー
    • CSS
  • タブメニューを上下に設置

    下記サイトを参考にタブメニューを作成しました。 http://5am.jp/jquery/jquery_ui_tabs/ こちらのタブを上下に配置し、selectされた状態も連動させたいと思っています。 スクリプトをどのように すればいいかお分かりの方がおられましたら ご教授頂けませんでしょうか。 <script type="text/javascript"> $(function() { $('#ui-tab > ul').tabs({ fx: { opacity: 'toggle', duration: 'normal' } }); }); </script> <div id="tabs"> <ul> <li><a href="#tab1"><span>タブ1</span></a></li> <li><a href="#tab2"><span>タブ2</span></a></li> <li><a href="#tab3"><span>タブ3</span></a></li> </ul> <div id="tab1"> <p>タブ1の内容</p> </div> <div id="tab2"> <p>タブ2の内容</p> </div> <div id="tab3"> <p>タブ3の内容</p> </div>       <ul class="bottom_tab"> <li><a href="#tab1"><span>タブ1</span></a></li> <li><a href="#tab2"><span>タブ2</span></a></li> <li><a href="#tab3"><span>タブ3</span></a></li> </ul> </div> どうぞ宜しくお願いいたします。

  • HTMLにジャバスクリプトを書く位置は?

    http://archiva.jp/web/javascript/tab-menu.html 上記のサイト「タブ切替ジャバスクリプトプログラム」は、上下2つのスクリプトに分かれています。 上のスクリプトは、「置き場所は</body>直前を勧めとく」と解説されています。 下のスクリプトは、「先の起動部分より先に宣言されていなければならない」と解説されています。 それなら、上下を逆にして1個のスクリプトで書けば良いのではないでしょうか? http://hyper-text.org/archives/2007/09/javascript_tab.shtml その問題を解消する為に、上記のサイトでは「window.onload=function() 」で上のスクリプトを囲んでいます。 どうして、この様な解決法になるのでしょうか?

  • Java script タブバーについて

    はじめまして。 今Java scripとでタブバーを作成しようと思っていて、 友達にタブのjsを教えてもらって作っていたんですが、 タブを3つから4つに増やすにはどこをどう修正したらいいのでしょうか? 現在は、white, black,redタブの3つです。 どなたか詳しい方教えていただけませんか。 よろしくお願い致します。 タブバー参考URL http://archiva.jp/web/javascript/tab-menu.html