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

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

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

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

HTML

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

CSS

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

Q&A

解決済

1回答

897閲覧

ボタンを1列横並びに表示したい

Ciel217

総合スコア9

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/11/26 11:11

編集2021/11/26 14:36

英語の並び替えをしたいのですが、以下のリンクの通り、ボタン(英語のやつ)を作成したところ初期状態のボタンが重なってしまい選択しにくい状態になっています。このボタンを今の動かせる状態を維持したまま、初期状態から等間隔で横並びできるようにしたいのですがやり方がわかりません。146行目のabsoluteを入力するとボタンが重なってしまいました。
どなたかお願いします。
リンク内容

コード長いので一部ですが、たぶんここら辺を変えると思います。

JavaScript

1//106行目から 2 function problem() 3 { 4 var problem; 5 var sort_sentence = new Array(problem_number); 6 var button_length = 35; 7 problem = qarray1[random_number[current_number]].problem_statement; 8 document.getElementById('Problem').innerHTML = ""; 9 10 document.getElementById('Answer_time').innerHTML = "残り:"+answer_time[current_number]+"秒"; 11 12 // ここで並替ボタンを動的に作る 13 // problemを半角空白で分割してボタンにする。 14 15 // 問題文の分割 16 sort_sentence = problem.split(" "); 17 18 // 問題文をランダムで並替 19 sort_sentence = sort_sentence.slice().sort(function(){ return Math.random() - 0.5; }).slice(0, sort_sentence.length); 20 21 // 前回ボタン削除 22 del_button(); 23 24 //やり直しボタンの有効化 25 if(flg != 2) { 26 document.fm.Retry.disabled = false; 27 } 28 29 // ボタンの作成 30 var bi = 1; 31 sort_sentence.forEach(function(value) { 32 33 var sort_buttons = document.getElementById("sort_button_area"); 34 var element_btn = document.createElement("input"); 35 element_btn.id = bi; 36 element_btn.classList.add("sort_button"); 37 element_btn.type = "button"; 38 element_btn.value = value; 39 element_btn.setAttribute("onclick", "onbtnClick(" + bi + ");"); 40 41 //ボタンの移動 42 element_btn.style.position = "absolute"; 43 element_btn.style.cursor = "pointer"; 44 element_btn.style.zIndex = "2"; 45 46 element_btn.ondragstart = function(e){ 47 return false; 48 } 49 50 function onMouseMove(event){ 51 var x = event.clientX; 52 var y = event.clientY; 53 var width = element_btn.offsetWidth; 54 var height = element_btn.offsetHeight; 55 element_btn.style.top = (y-height/2) + "px"; 56 element_btn.style.left = (x-width/2) + "px"; 57 } 58 59 element_btn.onmousedown = function(event){ 60 document.addEventListener("mousemove",onMouseMove); 61 } 62 63 element_btn.onmouseup = function(event){ 64 var x = event.clientX; 65 var y = event.clientY; 66 var width = element_btn.offsetWidth; 67 var height = element_btn.offsetHeight; 68 69 document.removeEventListener("mousemove",onMouseMove);//動きを止める 70 } 71 72 73 // 最低ボタンサイズ(幅)の設定 74 if(value.length < 1) { 75 76 element_btn.setAttribute("style", "width: 5em;"); 77 button_length = button_length - 5; 78 } else { 79 button_length = button_length - value.length; 80 } 81 82 83 // 解答済みの場合のボタン無効化設定 84 if(flg == 2 || answers[current_number] != "") { 85 element_btn.setAttribute("disabled", true); 86 } 87 88 // ボタンの追加 89 sort_buttons.appendChild(element_btn); 90 91 bi = bi + 1; 92 }); 93 94 // ボタン配置位置 95 var area = document.getElementById("sort_button_area"); 96 if (bi > 8) { 97 98 area.setAttribute("style", "text-align: center;"); 99 } else { 100 area.setAttribute("style", "text-align: center;"); 101 } 102 103 if(flg == 2) 104 { 105 document.getElementById('Problem').innerHTML = "解答:" + answers[current_number]; 106 document.getElementById('Correct').innerHTML = "正解:" + qarray1[random_number[current_number]].answer + ""; 107 } 108 }

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

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

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

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

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

itagagaki

2021/11/26 14:25

できれば質問内に最低限のコードを書いてください。
luuguas

2021/11/26 16:28

単語のボタンをドラッグ出来るようにした理由はなんですか。
Ciel217

2021/11/26 16:36

ドラッグで移動させて並び変えたものを判定するのが最終目標なのでこういうのになってます。
guest

回答1

0

ベストアンサー

element_btn.style.position = "absolute";onMouseMoveの中に移動してはどうでしょうか。

投稿2021/11/27 00:33

Lhankor_Mhy

総合スコア36960

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

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

Ciel217

2021/11/28 13:19

ありがとうございます! 無事改良することができました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問