ページを最初に表示したときオンになるタブを作る方法

このQ&Aのポイント
  • cssとjavascriptを使ってタブを使用したページを作っています。ページ表示時に一番左に表示される01タブを黒く表示しておいてほしいのですが、うまくいきません。
  • 元にしたサンプルはちゃんと表示される仕様になっていましたが、いじっているうちにおかしくなったようです。原因がわからないのでアドバイスいただけると大変ありがたいです。
  • 下記が制作中のhtmlです。http://www014.upp.so-net.ne.jp/kanikko/test/test.html
回答を見る
  • ベストアンサー

ページを最初に表示したときオンになるタブを作る方法(css,javascript)

cssとjavascriptを使ってタブを使用したページを作っています。 ページ表示時に一番左に表示される01タブを黒く表示しておいてほしいのですが、うまくいきません。 元にしたサンプルはちゃんと表示される仕様になっていましたが、いじっているうちにおかしくなったようです。 原因がわからないのでアドバイスいただけると大変ありがたいです。 よろしくお願い致します。 下記が制作中のhtmlです。 http://www014.upp.so-net.ne.jp/kanikko/test/test.html js中身******************* /*--setup--*/ window.onload=function() { tab.setup = { tabs: document.getElementById('tab').getElementsByTagName('li'), pages: [ document.getElementById('topics01'), document.getElementById('topics02'), document.getElementById('topics03'), document.getElementById('topics04'), document.getElementById('topics05'), document.getElementById('topics06'), document.getElementById('topics07') ] } tab.init(); } /*--setup end--*/ var tab = { init: function(){ var tabs = this.setup.tabs; var pages = this.setup.pages; for(i=0; i<pages.length; i++) { if(i !== 0) pages[i].style.display = 'none'; tabs[i].onclick = function(){ tab.showpage(this); return false; }; } }, 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; } for(var i=0; i<pages.length; i++) { if(i == num) { pages[num].style.display = 'block'; tabs[num].className = 'selected'; } else{ pages[i].style.display = 'none'; tabs[i].className = null; } } } } css中身******************* #javascript_tab_sample { width:448px; background:#ffffff; border:1px solid red; margin-bottom:10px; text-align:left; } #javascript_tab_sample ul#tab { margin:0; padding:0; border:1px solid black; background:blue; float:left; width:100%; } #javascript_tab_sample ul#tab li { text-align:center; border:1px solid orange; border-bottom:none; float:left; width:5em; } #javascript_tab_sample ul#tab li.selected { background-color:#000; } #javascript_tab_sample ul#tab li.selected a { color:#fff; }

  • HTML
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • mflow
  • ベストアンサー率63% (42/66)
回答No.1

よく見てないのですが、これでどうでしょうか。 <ul id="tab"> <li class="selected"><a href="#topics01">01</a></li> <li><a href="#topics02">02</a></li> <li><a href="#topics03">03</a></li> <li><a href="#topics04">04</a></li> <li><a href="#topics05">05</a></li> <li><a href="#topics06">06</a></li> <li><a href="#topics07">07</a></li> </ul>

kanikko256
質問者

お礼

ありがとうございます!!解決しました!! class="selected"が必要だったんですね。 本当にありがとうございます。。

関連するQ&A

  • JavaScriptエラーについて

    お世話になります。 おわかりになる方、ぜひ教えてください。 タブメニューのボタンを押すと、内容が切り替わるというJavaScriptなのですが、いちよう正常に動作はしているようなのですが、エラーがでてしまいます。 エラーを無くしたいのですが、どうすればいのでしょうか? 【エラー内容】 'document.getElementById()'はNullまたはオブジェクトではありません。 【HTML】 <div id="javascript_tab_sample"> <ul> <li><a href="#W3C">W3C</a></li> <li><a href="#xhtml">xhtml</a></li> </ul> <dl id="w3c"> <p>内容1</p> </dl> <dl id="xhtml"> <p>内容2</p> </dl> </div> 【JavaScript】 window.onload=function() { tab.setup = { tabs: document.getElementById('tab').getElementsByTagName('li'), pages: [ document.getElementById('w3c'), document.getElementById('xhtml') ] } tab.init(); } /*--setup end--*/ var tab = { init: function(){ var tabs = this.setup.tabs; var pages = this.setup.pages; for(i=0; i<pages.length; i++) { if(i !== 0) pages[i].style.display = 'none'; tabs[i].onclick = function(){ tab.showpage(this); return false; }; } }, 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; } for(var i=0; i<pages.length; i++) { if(i == num) { pages[num].style.display = 'block'; tabs[num].className = 'selected'; } else{ pages[i].style.display = 'none'; tabs[i].className = null; } } } } よろしくお願いします。

  • Java script エラー

    以前、質問して教えていただいたJava scriptですが、 サーバにアップしたところ Java script エラー 「pages[i].style.display = 'none';」が発生しました。 Java scriptの知識が全くない素人で申し訳ないのですが、 エラーの原因を教えていただけますでしょうか? よろしくお願いいたします。 <!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> <title>タブ切替のサンプル</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <script type="text/javascript"> // <![CDATA[ var tab = { peek:0, init: function(start){ var tabs = this.setup.tabs; var pages = this.setup.pages; for(var i=0; i<pages.length; i++) { if(i !== 0) pages[i].style.display = 'none'; tabs[i].onclick = function(){ tab.showpage(this); return false; }; } this.peek = start; this.showpage(tabs[this.peek]); }, 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) { tab.peek = num; break; } } 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; } } } } function initialize(){ tab.setup = { tabs: document.getElementById('tab').getElementsByTagName('li'), pages: [ document.getElementById('page1'), document.getElementById('page2'), document.getElementById('page3'), document.getElementById('page4'), document.getElementById('page5') ] } tab.init(0); } function proceed(num){ if(tab.peek + num < tab.setup.tabs.length && 0 <= tab.peek + num){ tab.showpage(tab.setup.tabs[tab.peek + num]); } } // ]]> </script>

  • JavascriptのJQuery UI Tabsで、HTML入りのTabをaddするには?

    JavascriptのJQuery UIのTabsに関する質問です。 以下のURL ​http://www.pharos-ei.com/mike/jquery/examples/ui.tabs.html​ 中の "Triggering, Enabling, Disabling, Adding and Removing Tabs"の項目についてです。 ここで、Append new tabを押すと新たなタブが出来上がりますが、 その時にHTMLを含んだタブを表示したいのですがうまくいきません。 (現状、Append new tabを押したときに白紙のタブが開いているが、 タブを開いた時に、本文を動的に生成して書き込みたい。) 私が考えたのは、 id="new-tab"のdivがHTML内に出来ているので、 そこにdocument.getElementById(new-tab).innerHTMLとする方法でした。 しかし、これがうまくいかない状況です。 どなたか、addで生成したTabにHTMLを書き込む方法をご教授下さい。 具体的には、上記リンクを参考して次のコードを書きました。 ------------------------------------------------- var num = 1; var lavel = '#tab' + num; // ↓#tab1が生成される。ここまではできました。 $('#container-9 > ul').tabs('add', lavel, 'New Tab'); var divid = '"tab' + num + '"'; // ↓これがうまく動きません… document.getElementById(divid).innerHTML = 'ああああああ'; ---------------------------------------------------- 何卒、宜しくお願いします。

  • カテゴリページ内 複数タブ

    wordpressでサイト作っています idの番号を変えることで1ページ内に#numの連番で複数タブを置ける様にはしたのですが、 while文のなかで番号に連番を振るやり方がわかりません。 初心者ですいませんが、よろしくお願いします <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/ … <script type="text/javascript"> $.hoge = function( target ) { //Default Action target.find(".tab_content").hide(); //Hide all content target.find("ul.tabs li:first").addClass("active").show(); //Activate first tab target.find(".tab_content:first").show(); //Show first tab content //On Click Event target.find("ul.tabs li").click(function() { target.find("ul.tabs li").removeClass("active"); //Remove any "active" class $(this).addClass("active"); //Add "active" class to selected tab target.find(".tab_content").hide(); //Hide all tab content var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content activeTab = activeTab.replace( '#', '.' ); target.find(activeTab).fadeIn(); //Fade in the active content return false; }); }// $.hoge // -------------------------------------- $(function() { $.hoge( $('#num1') ); $.hoge( $('#num2') ); }); </script> </head> <body> <div id="num1" class="container"> <ul class="tabs"> <li><a href="#tab1">Gallery</a></li> <li><a href="#tab2">Submit</a></li> </ul> <div class="tab_container"> <div class="tab1 tab_content"> <h2>Gallery</h2> </div> <div class="tab2 tab_content"> <h2>Submit</h2> </div> </div> </div> <div id="num2" class="container"> <ul class="tabs"> <li><a href="#tab1">Gallery</a></li> <li><a href="#tab2">Submit</a></li> </ul> <div class="tab_container"> <div class="tab1 tab_content"> <h2>Gallery</h2> </div> <div class="tab2 tab_content"> <h2>Submit</h2> </div> </div> </div> </body> </html>

  • javascriptでタブ。曜日ごとに切り替える方法がわかりません。

    javascript初心者です。 javascriptでタブを作って曜日ごとに自動で切り替わるようにしたいのです。一生懸命考えてるのですがうまくいきません。 タブの作成はうまくいきました。以下がタブです。 function WeekTab( week ) { var i; for( i=0; i < 7; i++ ) { document.getElementById('week' + i ).style.display = 'none'; } document.getElementById('week' + week ).style.display = 'inline'; } --> ~~BODY~~~~~ <table class="week-tab"> <tr> <th onClick="WeekTab(0)" id="week_tab0">日曜</th> <th onClick="WeekTab(1)" id="week_tab1">月曜</th> <th onClick="WeekTab(2)" id="week_tab2">火曜</th> <th onClick="WeekTab(3)" id="week_tab3">水曜</th> <th onClick="WeekTab(4)" id="week_tab4">木曜</th> <th onClick="WeekTab(5)" id="week_tab5">金曜</th> <th onClick="WeekTab(6)" id="week_tab6">土曜</th> </tr> </table> <div id="week0" style="display:none;"> <h3>日曜</h3> </div>以下省略・・ このタブに曜日ごとに自動で切り替わるようにしたいのです。 どうか力を貸してくださいよろしくお願いします

  • cssでタブの2段重ねの方法を教えてください

    当方、html、css初心者です。javascriptに関しては全くちんぷんかんぷんです。 http://xampp.utun.net/ このようなサンプルがあったのですが、これを改造して、 タブを縦2段でレイアウトしたいのですが、 方法を教えて頂けないでしょうか? CSSソース ----------------------------------------------------------------------- <style type="text/css"> /* ▼(A)表示領域全体 */ div.tabbox { margin: 0px; padding: 0px; width: 400px; } /* ▼(B)タブ部分 */ p.tabs { margin: 0px; padding: 0px; } p.tabs a { /* ▼(B-2)リンクをタブのように見せる */ display: block; width: 5em; float: left; margin: 0px 1px 0px 0px; padding: 3px; text-align: center; } /* ▼(B-3)各タブの配色 */ p.tabs a.tab1 {background-color: blue;color: #000;} p.tabs a.tab2 { background-color: #aaaa00; color:white;} p.tabs a.tab3 { background-color: red; color: white; } p.tabs a.tab4 { background-color: red; color: white;} background-color: #F00; color: white; } p.tabs a:hover { color: yellow; } /* ▼(C)タブ中身のボックス */ div.tab { /* ▼(C-2)ボックス共通の装飾 */ height: 150px; overflow: auto; clear: left; } /* ▼(C-3)各ボックスの配色 */ div#tab1 { border: 2px solid blue; background-color: #ccffff; } div#tab2 { border: 2px solid #aaaa00; background-color: #ffffcc; } div#tab3 { border: 2px solid red; background-color: #ffcccc; } div#tab4 { border: 2px solid red; background-color: #ffcccc; } div.tab p { margin: 0.5em; } </style> ----------------------------------------------------------------------------- 上記の通りです。 ご指導、ご鞭撻の程を宜しくお願いします。

    • 締切済み
    • CSS
  • ページの上下に同じタブメニューを付けたい

    現在、wordpressにて、タブメニュー入りのページを作っていますが、添付の画像のように、ページの上下に、連動したタブメニューをつける方法を教えてください。 ちなみに、 ヘッダーに↓の記述をし、 <script> <!-- jQuery( function() { jQuery( '#jquery-sample-tabs > ul > li' ) . click( function () { var str = jQuery( 'input', this ) . val(); jQuery( '#jquery-sample-tabs > div' ) . not( str ) . css( 'display', 'none' ); jQuery( str ) . css( 'display', 'block' ); jQuery( this ) . css( { 'backgroundColor': '#F3F3F3', 'border-bottom': 'none' } ); jQuery( '#jquery-sample-tabs > ul > li' ) . not( this ) . css( { 'backgroundColor': '#f60', 'border-bottom': 'solid 1px #F3F3F3' } ); } ) . first() . click(); } ); // --> </script> cssに↓の記述をし、 #jquery-sample-tabs { width:750px; background:#F3F3F3; } #jquery-sample-tabs ul { background:#000; margin: 0; padding: 5px 5px; } #jquery-sample-tabs ul li { display: inline; margin: 1px; padding: 5px 20px; border: solid 1px #888888; border-radius: 5px 5px 0px 0px; background-color: #F3F3F3; cursor: pointer; } #jquery-sample-tabs div { padding: 10px 15px; } HTMLに↓の記述をしています。 <div id="jquery-sample-tabs" class="jquery-sample-tabs"> <ul> <li> <input id="#jquery-sample-tab-1" type="hidden" value="#jquery-sample-tab-1-contents" /> タブ(1) </li> <li> <input id="#jquery-sample-tab-2" type="hidden" value="#jquery-sample-tab-2-contents" /> タブ(2) </li> <li> <input id="#jquery-sample-tab-2" type="hidden" value="#jquery-sample-tab-3-contents" /> タブ(3) </li> </ul> <div id="jquery-sample-tab-1-contents">(1)の内容</div> <div id="jquery-sample-tab-1-contents">(2)の内容</div> <div id="jquery-sample-tab-1-contents">(3)の内容</div> </div> よろしくお願いします。

  • JavaScriptによるCSS変更がIE以外のFirefox,Operaなどで動作しない

    id="tab"要素の背景画像positionをJavaScriptで動的に変更したいのですが、以下のソースではFirefox、Operaで動作しません。IEでは動作確認できました。 原因がわからないのでこちらでお聞きすることにしました。 よろしくお願いします。 <!-- HTMLソース --> <?xml version="1.0" encoding="Shift_JIS"?> <!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=Shift_JIS" /> <meta http-equiv="content-script-type" content="text/javascript" /> <link rel="stylesheet"href="test.css"type="text/css" /> <script type="text/javascript" src="test.js"></script> <title>test</title> </head> <body> <div id="javascript_tab_sample"> <ul class="tabstyle"id="tab"> <li><a href="###" onclick="effect1()">title1</a></li> <li><a href="###" onclick="effect2()">title2</a></li> <li><a href="###" onclick="effect3()">title3</a></li> </ul> </div> </body> </html> /*-- CSSソース --*/ ul.tabstyle { list-style:none; } div#javascript_tab_sample ul#tab { background:url('./backimg.png');/*デフォルト背景*/ float:left; width:100%; } div#javascript_tab_sample ul#tab li { height: 41px;/*縦幅*/ padding:0em 0; text-align:center; border-bottom:none; float:left; width:5em; } /*-- JavaScriptソース --*/ function effect1(){ var element1 = document.getElementById('tab'); element1.style.backgroundPositionY='0'; } function effect2(){ var element2 = document.getElementById('tab'); element2.style.backgroundPositionY='82'; } function effect3(){ var element3 = document.getElementById('tab'); element3.style.backgroundPositionY='41'; }

  • タブ切り替えが出来るjavascriptを使用しています。

    タブ切り替えが出来るjavascriptを使用しています。 http://5am.jp/jquery/jquery_ui_tabs/ ここのサイトを参考にしてタブ切り替えが動くところまで行きましたが、 どうにかして、別ページからリンクをクリックした時に、特定のタブへ直接飛ぶようにしたいと思っています。 <script type="text/javascript">  $(function() {   $('#ui-tab > ul').tabs({ fx: { opacity: 'toggle', duration: 'fast' } });  }); </script> ヘッダーにある上記のjavascriptを少し編集すればできそうな気がするのですが、 もうお手上げになっちゃいました。 申し訳ないのですが、どなたか教えていただければと思います。 よろしくお願いします。

  • 他ページから直接タブにアクセスするには、以下をどうすればなりますか?

    他ページから直接タブにアクセスするには、以下をどうすればなりますか? タブのidには、tbc_1~5までを設定しています。 function $(id) {return document.getElementById(id);} function tab(n) { var li=$("tab").getElementsByTagName("li"); for(var i=1;i<=li.length;i++){ $("tb_"+i).className=""; $("tbc_"+i).style.display="none"; } $("tb_"+n).className="on"; $("tbc_"+n).style.display="block"; }

専門家に質問してみよう