入力した文字が出力される枠は、あらかじめdivで定義してあります。
<div id="japanese" class="auto-style1" style="height: 22px"></div>
<!--このレイヤ-の中へ文字を出力します-->
<div class="input" id="答えの枠" >
<span class="input" style = " color:orange; font-size:30px;font-weight:900"></span>
文字をタイプして、表示させるコードは以下の通りですが、入力した場所の下に出している文字類が下にずれてしまいます。
document.getElementById(layName).textContent=html
入力していないときは、文字が入る場所はブランクのままですが、タイプして、そこに文字が入ると全体に改行されて最初から画面に出してる文字類が全部下にずれてしまいます。
文字が入る場所は、絶対座標で固定にするなど考えたのですが、それもやりたくありません。
良い方はありますでしょうか?
この質問は↓の続きになります。
http://q.hatena.ne.jp/1445407593
点滅するカーソルを表示するのは、止めにしたんですね。
以下のように、文字が入るエリアの後にダミーの SPAN 要素を入れてみてください。
<!--このレイヤ-の中へ文字を出力します--> <div class="input" id="答えの枠" > <span class="input" style = " color:orange; font-size:30px;font-weight:900"></span> <span class="dummy"> </span> <!-- ★これを追加します --> </div>
クラス名は何でも構いません(指定しなくても良い)。
要素の中身は、半角の空白ではダメです。
先のコードのように実体参照 にするか、全角の空白などにしてください。
入力するところを、textareaにするのは、どうですか。
ありがとうございます。textareaにしてみましたが、デザインが変わるようなので
点滅するカーソルを表示するのは、止めにしたんですね。
以下のように、文字が入るエリアの後にダミーの SPAN 要素を入れてみてください。
<!--このレイヤ-の中へ文字を出力します--> <div class="input" id="答えの枠" > <span class="input" style = " color:orange; font-size:30px;font-weight:900"></span> <span class="dummy"> </span> <!-- ★これを追加します --> </div>
クラス名は何でも構いません(指定しなくても良い)。
要素の中身は、半角の空白ではダメです。
先のコードのように実体参照 にするか、全角の空白などにしてください。
是非、もう1つ教えて下さい。
エンターをおした時に、正解の判定をするのですが、そのときタイプした文字を、カーソルを含めて画面から消したいのですが、
お、jQuery も使ってますか。
jQuery を使うなら、こんな感じ。
$("#inputbox").text("");
jQuery は CSS のセレクタで指定するので、id 指定なら # をつけます。
返ってくるのは HTML の要素オブジェクトではないので、jQuery のメソッドを使って操作します。
同じことを素の DOM でやるならこう。
document.getElementById("inputbox").textContent = "";
ただ、両方ともカーソルを持っている要素ごとバッサリ消すので、回答枠の下にある文字がずれるかも。
回答枠の高さをカチット決めてあれば、ずれないかもしれません。
とても勉強になりました。どうもありがとうございます!
お、jQuery も使ってますか。
jQuery を使うなら、こんな感じ。
jQuery は CSS のセレクタで指定するので、id 指定なら # をつけます。
返ってくるのは HTML の要素オブジェクトではないので、jQuery のメソッドを使って操作します。
同じことを素の DOM でやるならこう。
ただ、両方ともカーソルを持っている要素ごとバッサリ消すので、回答枠の下にある文字がずれるかも。
2015/10/27 15:04:22回答枠の高さをカチット決めてあれば、ずれないかもしれません。
とても勉強になりました。どうもありがとうございます!
2015/10/28 13:27:00