<input>
この四角いカーソル (下の画像) をテキストタグで使用するにはどうすればよいですか?
6 に答える
サンプル
私はそれがどのように機能するかを変更しました.それはいくつかの問題を解決するようです:)
- 通常の入力が可能な任意のテキストを受け入れます
- バックスペース機能
- 理論的にはテキストの貼り付けをサポートできます
通常の警告は引き続き適用されますが、最も顕著なのは、キャレットがどこにあるかを視覚的に確認できないことです。
その欠点と使いやすさの問題に基づいて、このソリューションを実装する価値があるかどうか、私は長い間懸命に考えます。
$(function() {
var cursor;
$('#cmd').click(function() {
$('input').focus();
cursor = window.setInterval(function() {
if ($('#cursor').css('visibility') === 'visible') {
$('#cursor').css({
visibility: 'hidden'
});
} else {
$('#cursor').css({
visibility: 'visible'
});
}
}, 500);
});
$('input').keyup(function() {
$('#cmd span').text($(this).val());
});
$('input').blur(function() {
clearInterval(cursor);
$('#cursor').css({
visibility: 'visible'
});
});
});
#cmd {
font-family: courier;
font-size: 14px;
background: black;
color: #21f838;
padding: 5px;
overflow: hidden;
}
#cmd span {
float: left;
padding-left: 3px;
white-space: pre;
}
#cursor {
float: left;
width: 5px;
height: 14px;
background: #21f838;
}
input {
width: 0;
height: 0;
opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cmd">
<span></span>
<div id="cursor"></div>
</div>
<input type="text" name="command" value="" />
できません。つまり、fixed-with フォントを使用して自分で行うことができます。既に入力されたテキストの with を計算することで位置が動的に設定される点滅する gif の背景を使用しますが、gif の上に「通常の」カーソルが表示されます。このソリューションを醜くする
タグについて<input>
は、できることはあまりありません。恐ろしいハックであることを気にしない場合は、いつでも JavaScript を使用して、必要に応じてテキスト ボックスのサイズを変更し ( set width = *something* * count
)、<img>
カーソルを右に配置することができます。
テキスト入力を自分で処理するバーは、おそらくやり過ぎです。
私の知る限り、それはhtmlテキストボックスでは不可能です。入力自体をスタイルすることはできますが、すでに利用可能なカーソルオプションを適用する以外にカーソルについては何もできません:(
1) 独自のテキスト ボックスをロールし、2) 継続的に別の場所にフォーカスして実際のカーソルを非表示にする必要があります。次に、ドキュメント/本文レベルで重要なイベントをキャプチャし、その値を独自の要素に挿入します。カーソルは、常に「テキストボックス」の右端に配置されたアニメーション GIF になります。
#2で問題が発生し、全体として一般的にはお勧めできません. HTML 5 はいくつかの新しい可能性を開きますが、それでもカーソルの作業は非常に多くなります。