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

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

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

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

4991閲覧

canvas上にボタン配置

Ciel217

総合スコア9

JavaScript

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

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2021/12/01 15:15

canvas上にボタンを配置したいのですが、canvasの位置を調整したりして、いろいろ試しましたがうまくいきませんでした。以下のリンクで英語のボタンをcanvas上に配置したいです。200行目付近を書き換えると思うのですがよくわかりません。
どなたかお願いします。
リンク内容

JavaScript

1 // ボタン配置位置 2 var area = document.getElementById("sort_button_area"); 3 if (bi > 8) { 4 5 area.setAttribute("style", "text-align: center;"); 6 } else { 7 area.setAttribute("style", "text-align: center;"); 8 } 9 10 if(flg == 2) 11 { 12 document.getElementById('Problem').innerHTML = "解答:" + answers[current_number]; 13 document.getElementById('Correct').innerHTML = "正解:" + qarray1[random_number[current_number]].answer + ""; 14 } 15 }

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

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

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

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

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

m.ts10806

2021/12/01 20:53

質問内のコードで再現できるように配慮願います。
yambejp

2021/12/02 00:24

結局canvasにしたのでしょうか? canvas上にインタラクティブな要素を埋め込んでも処理が大変なだけだと思いますが・・
Lhankor_Mhy

2021/12/02 01:43

「うまくいきませんでした」とのことですが、具体的には何がどのようにうまくいっていないのですか? 「こうなると思って」「このコードを書いたが」「この結果になった」 のように、想定・コード・結果をセットでご提示ください。 期待した処理結果を書きましょう https://teratail.com/help/question-tips#questionTips3-4-3 エラーメッセージや実行ログをコピー&ペーストしましょう https://teratail.com/help/question-tips#questionTips3-4-2 ソースコードを書きましょう https://teratail.com/help/question-tips#questionTips3-5-1 結果(実際に起きたこと)を書きましょう https://teratail.com/help/question-tips#questionTips3-4-1
guest

回答2

0

canvasでやる意味がないような気がします

javascript

1<style> 2#view{display:flex;} 3#view div{border:solid 1px;border-radius:5px;padding:0px 2px 0px 2px ;} 4#view div:not(:first-child){margin-left:10px;} 5#view [data-disabled]{background-Color:gray;} 6</style> 7 8<script> 9window.addEventListener('DOMContentLoaded', ()=>{ 10 const q="Many people visit London every year ."; 11 const view=document.querySelector('#view'); 12 const q_arr=q.split(' ') 13 .map(x=>[x,Math.random()]) 14 .sort((x,y)=>x[1]-y[1]) 15 .map(x=>x[0]); 16 q_arr.forEach(x=>view.append(Object.assign(document.createElement('div'),{textContent:x}))); 17 const a_arr=[]; 18 document.querySelectorAll('#view div').forEach(x=>{ 19 x.addEventListener('click',e=>{ 20 if(!e.target.closest('[data-disabled]')){ 21 a_arr.push(e.target.textContent); 22 e.target.setAttribute('data-disabled',1); 23 ans.textContent=a_arr.join(" "); 24 if(a_arr.length==q_arr.length){ 25 document.querySelector('#judge').textContent=q==ans.textContent?'正解!':'不正解'; 26 } 27 } 28 }); 29 }); 30 document.querySelector('#reset').addEventListener('click',e=>{ 31 a_arr.length=0; 32 document.querySelectorAll('[data-disabled]').forEach(x=>x.removeAttribute('data-disabled')); 33 document.querySelectorAll('#ans,#judge').forEach(x=>x.textContent=''); 34 }); 35}); 36</script> 37<div id="view"></div> 38<input type="button" id="reset" value="リセット"> 39<div id="ans"></div> 40<div id="judge"></div> 41

投稿2021/12/02 13:13

編集2021/12/02 13:19
yambejp

総合スコア115010

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

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

Ciel217

2021/12/03 08:39

今回もありがとうございます やはり、canvasを使ったものでは自分では無理そうなので こちらの書き方で1からやってみたいと思います。 おそらくこれからもわからないことだらけになると思うので、 その時はまたお願いします。
yambejp

2021/12/03 08:53 編集

挙動的に問題ないならうまく拡張して使ってください わからないことや詰まることがあれば別途ご質問ください 1個だけ気になっていたのが、先頭の文字が最初から大きいと 明らかに先頭ってわかっちゃうかな・・・という点です。 できればIとか国名など特殊なモノ以外は先頭文字も小文字にしておき 選んだ時点で大文字に変更するなど工夫が必要かなと。
guest

0

ベストアンサー

「開始」ボタン押下後にでるボタンたちをcanvas要素の上に乗せたい、ということであれば、以下のようにCSSを変更するとよいでしょう。

css

1.container { 2/* 3 position: relative; 4*/ 5 background-color: rgb(248, 246, 246); 6 position: absolute; 7}

投稿2021/12/02 01:55

Lhankor_Mhy

総合スコア36158

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

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

Ciel217

2021/12/02 04:59

上記のように書き換えたところcanvas自体が消えてしまいました。
Lhankor_Mhy

2021/12/02 05:01

上に乗っているので、隠れているだけだと思います。
Lhankor_Mhy

2021/12/02 05:02

ああ、いや、違うのか。ボックスがつぶれているのですね。 適切にサイズを指定すればいいかと思いますよ。
Ciel217

2021/12/02 06:07

何度もすみません、サイズ指定はどこを変えればよいのでしょうか
Lhankor_Mhy

2021/12/02 06:24

width: 100% などとすればいいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問