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

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

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

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

HTML5

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ASP.NET MVC 4

ASP.NET MVC4は、MVCパターンを利用して、高度なテスト機能と保守機能を備えた Web アプリケーションを開発するためのフレームワークです。

Q&A

解決済

1回答

2683閲覧

svgクリック時にページを遷移させたい(get)

sanezane

総合スコア91

SVG

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

HTML5

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ASP.NET MVC 4

ASP.NET MVC4は、MVCパターンを利用して、高度なテスト機能と保守機能を備えた Web アプリケーションを開発するためのフレームワークです。

0グッド

0クリップ

投稿2018/05/21 09:33

編集2018/05/21 09:35

仕様とやりたいこと

asp.net C# でのWebアプリ
画面内の絵(画像)をhtml内にsvg属性で記入することで表現しています。
その絵をクリックすることでページを遷移させたい(getアクション)と考えています。

html

1<svg class="クラス"> 2 <rect data-name="" 3 id="rect815" 4 width="100" 5 height="100" 6 x="34.773811" 7 y="36.19643" /> 8 <text x="85" y="90" text-anchor="middle">テキスト</text> 9 10 //svg内にアクションリンクを直接埋めてみたが画像が崩れただけ 11 @Html.ActionLink("リンク", "index", "リンクcontrollerName") 12 13</svg>

試したこと

svgの中にactionlinkを埋め込んでみましたがsvgの画像が崩れただけでした。

使えそうなもの

javascript

1function alertName(e) { 2 alert('Welcome to ' + e.target.getAttribute('data-name')); 3} 4 5window.onload = function() { 6 paths = window.document.querySelectorAll('path'); 7 for (i = 0; i < paths.length; ++i) { 8 paths[i].onclick = alertName; 9 } 10};

これ自体はロード時にhtml内の'path'属性の'data-name'を拾い上げてalert関数を仕込んでいるだけですが、これを利用してリンクを仕込めないか検討中です。

お力添えを宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

デフォルトのルーティング設定だと URL が /{controller}/{action}/{id} らしいので、

javascript

1window.location.href = '/controllerName/index/' + encodeURIComponent(e.target.getAttribute('data-name'));

こんな感じで遷移させてみたらどうでしょうか?

投稿2018/05/21 16:42

yhg

総合スコア2161

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

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

sanezane

2018/05/22 04:17

ありがとうございます! <svg>の中に直接onclickを入れたら遷移できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問