質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1015閲覧

svgファイルにjqueryで動作を付けたい(タブ機能)

kihara.if

総合スコア3

SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

タブ

コンテンツの上下左右に参照用のメニューを設けることで、複数の要素やページの表示を可能にするユーザーインターフェイスパターンのこと。メニューをクリックすると、一つの要素が可視化され、他の要素は見えなくなる。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/12/29 03:59

前提・実現したいこと

地方別でタップした時にその都度都道府県別で現れるように
タブ切り替えのようにしたい。

<参考>
https://allabout.co.jp/gm/gc/23969/5/

発生している問題・エラーメッセージ

イメージ説明

該当のソース

html

1<div id="tabcontrol"> 2<?xml version="1.0" encoding="utf-8"?> 3<!-- Generator: Adobe Illustrator 26.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 4<svg version="1.1" id="レイヤー" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" 5y="0px" viewBox="0 0 1600 1200" style="enable-background:new 0 0 1600 1200;" xml:space="preserve"> 6<style type="text/css"> 7.st0{fill:#4D4398;} 8.st1{fill:#9DC92A;} 9.st2{fill:#00A95F;} 10.st3{fill:#E74291;} 11.st4{fill:#EA5532;} 12.st5{fill:#F18D02;} 13.st6{fill:#AF3E92;} 14.st7{fill:#00ABEB;} 15</style> 16 17<a href="#tabpage1"><path class="st0" d="M1222.4,171.1c0-7.7-6.3-14-14-14h-172c-7.7,0-14,6.3-14,14v107c0,7.7-6.3,14-14,14h-22c-7.7,0-14,6.3-14,14v62 18c0,7.7,6.3,14,14,14h72c7.7,0,14-6.3,14-14v-17c0-7.7,6.3-14,14-14h122c7.7,0,14-6.3,14-14V171.1z"/></a> 19 20 21<a href="#tabpage2"><path class="st1" d="M673.7,913.4c0,7.7-6.3,14-14,14h-162c-7.7,0-14-6.3-14-14v-52c0-7.7,6.3-14,14-14h162c7.7,0,14,6.3,14,14 22V913.4z"/></a> 23 24<a href="#tabpage3"><path class="st2" d="M461,1033.4c0,7.7-6.3,14-14,14H325c-7.7,0-14-6.3-14-14v-172c0-7.7,6.3-14,14-14h122c7.7,0,14,6.3,14,14 25V1033.4z"/></a> 26 27<a href="#tabpage4"><path class="st3" d="M953.7,607.4c-7.7,0-14,6.3-14,14v40.7c0,7.7-6.3,14-14,14H813c-7.7,0-14,6.3-14,14v120.7c0,7.7,6.3,14,14,14 28h112.7c7.7,0,14-6.3,14-14v-52c0-7.7,6.3-14,14-14h52c7.7,0,14-6.3,14-14V621.4c0-7.7-6.3-14-14-14H953.7z"/></a> 29 30<a href="#tabpage5"><path class="st4" d="M610.3,676.1c-7.7,0-14,6.3-14,14v120.7c0,7.7,6.3,14,14,14h72c7.7,0,14,6.3,14,14v52c0,7.7,6.3,14,14,14h52 31c7.7,0,14-6.3,14-14v-52c0-7.7,0-20.3,0-28V690.1c0-7.7-6.3-14-14-14H610.3z"/></a> 32 33<a href="#tabpage6"><path class="st5" d="M573.7,810.7c0,7.7-6.3,14-14,14h-152c-7.7,0-14-6.3-14-14V690.1c0-7.7,6.3-14,14-14h152c7.7,0,14,6.3,14,14 34V810.7z"/></a> 35 36<a href="#tabpage7"><path class="st6" d="M1056.4,687.4c-7.7,0-14,6.3-14,14v52c0,7.7-6.3,14-14,14h-52c-7.7,0-14,6.3-14,14v52c0,7.7,6.3,14,14,14h52 37c7.7,0,20.3,0,28,0h52c7.7,0,14-6.3,14-14v-52c0-7.7,0-20.3,0-28v-52c0-7.7-6.3-14-14-14H1056.4z"/></a> 38 39<a href="#tabpage8"><path class="st7" d="M986.4,404.7c-7.7,0-14,6.3-14,14v152c0,7.7,6.3,14,14,14h42c7.7,0,14,6.3,14,14v52c0,7.7,6.3,14,14,14h52 40c7.7,0,14-6.3,14-14v-52c0-7.7,0-20.3,0-28v-152c0-7.7-6.3-14-14-14H986.4z"/></a> 41</svg> 42</div> 43 44<div id="tabbody"> 45 <div id="tabpage1">…… タブ1の中身 ……</div> 46 <div id="tabpage2">…… タブ2の中身 ……</div> 47 <div id="tabpage3">…… タブ3の中身 ……</div> 48 <div id="tabpage4">…… タブ4の中身 ……</div> 49 <div id="tabpage5">…… タブ5の中身 ……</div> 50 <div id="tabpage6">…… タブ6の中身 ……</div> 51 <div id="tabpage7">…… タブ7の中身 ……</div> 52 <div id="tabpage8">…… タブ8の中身 ……</div> 53 </div> 54 55```コード 56 57```javasqript 58<script type="text/javascript"> 59 // --------------------------- 60 // ▼A:対象要素を得る 61 // --------------------------- 62 var tabs = document.getElementById('tabcontrol').getElementsByTagName('a'); 63 var pages = document.getElementById('tabbody').getElementsByTagName('div'); 64 65 // --------------------------- 66 // ▼B:タブの切り替え処理 67 // --------------------------- 68 function changeTab() { 69 // ▼B-1. href属性値から対象のid名を抜き出す 70 var targetid = this.href.substring(this.href.indexOf('#')+1,this.href.length); 71 72 // ▼B-2. 指定のタブページだけを表示する 73 for(var i=0; i<pages.length; i++) { 74 if( pages[i].id != targetid ) { 75 pages[i].style.display = "none"; 76 } 77 else { 78 pages[i].style.display = "block"; 79 } 80 } 81 82 // ▼B-3. クリックされたタブを前面に表示する 83 for(var i=0; i<tabs.length; i++) { 84 tabs[i].style.zIndex = "0"; 85 } 86 this.style.zIndex = "10"; 87 88 // ▼B-4. ページ遷移しないようにfalseを返す 89 return false; 90 } 91 92 // --------------------------- 93 // ▼C:すべてのタブに対して、クリック時にchangeTab関数が実行されるよう指定する 94 // --------------------------- 95 for(var i=0; i<tabs.length; i++) { 96 tabs[i].onclick = changeTab; 97 } 98 99 // --------------------------- 100 // ▼D:最初は先頭のタブを選択しておく 101 // --------------------------- 102 tabs[0].onclick(); 103 104 </script>

試したこと

javascriptが読み込まれているかの確認。https://allabout.co.jp/gm/gc/23969/5/のファイルを読み込んだ際にしっかりタブとして動作しましたが
上記のsvgファイルを張り付けるとタブにならないようになってしまった。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記に変えて試してもらえますか?

JavaScript

1// ▼B-1. href属性値から対象のid名を抜き出す 2//var targetid = this.href.substring(this.href.indexOf('#')+1,this.href.length); 3var targetid = this.href.baseVal.substring(this.href.baseVal.indexOf('#')+1,this.href.baseVal.length);

投稿2021/12/29 04:43

cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kihara.if

2021/12/29 04:56

完璧に実装が出来ました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問