\r\nコード\r\n```","answerCount":1,"upvoteCount":1,"datePublished":"2018-12-21T13:59:40.718Z","dateModified":"2018-12-21T13:59:40.718Z","acceptedAnswer":{"@type":"Answer","text":"ただ文字を出すだけならctx.fillText()で出来ますがHTML elementでは無いのでコピペしたりできません\r\n\r\nHTML elementを載せたいのならばcssのstyleを以下のようにすると出来ます\r\n```CSS\r\n#container {\r\n position: relative;\r\n}\r\n#overlay{\r\n z-index:1;\r\n}\r\n#container canvas, #overlay {\r\n position: absolute;\r\n}\r\ncanvas {\r\n border: 1px solid black;\r\n}\r\n```\r\n```HTML\r\n
\r\n \r\n
This div is over the canvas
\r\n
\r\n```\r\n参考記事:[stackoverflow How to overlay a div over a canvas](https://stackoverflow.com/questions/26793247/how-to-overlay-a-div-over-a-canvas-css/26793302)\r\n\r\nfillTextについて:[w3c schools](https://www.w3schools.com/tags/canvas_filltext.asp)","dateModified":"2018-12-21T14:32:26.588Z","datePublished":"2018-12-21T14:27:25.770Z","upvoteCount":1,"url":"https://teratail.com/questions/165321#reply-246688"},"suggestedAnswer":[],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/JavaScript","name":"JavaScriptに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/165321","name":"canvas上にHTMLを出力したい"}}]}}}
質問するログイン新規登録

Q&A

解決済

1回答

1579閲覧

canvas上にHTMLを出力したい

librashogi

総合スコア16

JavaScript

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

1グッド

0クリップ

投稿2018/12/21 13:59

1

0

クリックでキャンバス上に文字を表示させたいです。
今のコードでは、キャンバスそのものを文字に書き換えてしまっています。

<!-- キャンバスの設定 --> <canvas id="canv" width="450" height="450"></canvas> <script> var ctx = document.getElementById("canv").getContext('2d'); // 描画内容を指定する // 盤 ctx.fillStyle = "rgb(60,8,0)"; ctx.fillRect(0, 0, 450, 450); // 格子の設定 ctx.strokeStyle = "white" ctx.lineWidth = 2; ctx.beginPath(); // 縦線 for (var v = 50; v < 450; v+=50) { ctx.moveTo(v, 0); ctx.lineTo(v, 450); } // 横線 for (var h = 50; h < 450; h+=50) { ctx.moveTo(0, h); ctx.lineTo(450, h); } // 描画内容を実行する ctx.stroke(); document.getElementById("canv").onclick= function() { document.write("歩"); }; </script> コード
bochan2👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

ただ文字を出すだけならctx.fillText()で出来ますがHTML elementでは無いのでコピペしたりできません

HTML elementを載せたいのならばcssのstyleを以下のようにすると出来ます

CSS

1#container { 2 position: relative; 3} 4#overlay{ 5 z-index:1; 6} 7#container canvas, #overlay { 8 position: absolute; 9} 10canvas { 11 border: 1px solid black; 12}

HTML

1 <div id="container"> 2 <canvas id="canv" width="450" height="450"></canvas> 3 <div id="overlay">This div is over the canvas</div> 4</div>

参考記事:stackoverflow How to overlay a div over a canvas

fillTextについて:w3c schools

投稿2018/12/21 14:27

編集2018/12/21 14:32
bochan2

総合スコア2050

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

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

librashogi

2018/12/21 14:30

ありがとうございます。一度試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問