テキストエリアのさまざまな部分を強調表示する小さな jQuery プラグインを作成しました。
<pre>
強調表示されたコードを表示するテキストエリアの後ろに追加しました。テキストエリアは透明です。
HTML:
<textarea class="edit" rows="10"></textarea>
CSS:
pre {
position: absolute;
z-index: -1;
outline: 1px dashed red;
}
.edit {
outline: 1px dotted blue;
opacity: 1;
width: 50%;
color: #000;
border: 0px solid transparent;
background: transparent;
resize: vertical;
}
pre, .edit {
overflow: auto;
margin: 0;
padding: 0;
tab-size: 4;
-o-tab-size: 4;
-moz-tab-size: 4;
line-height: 17px;
font-family: monospace;
font-size: 13px;
}
JS:
$(document).ready(function() {
$('.edit').after('<pre></pre>');
var $code = $('pre');
var position = $('.edit').position();
$code.css('left', position.left + 'px');
$code.css('top', position.top + 'px');
$code.css('width', $('.edit').innerWidth() + 'px');
$code.css('height', $('.edit').innerHeight() + 'px');
$('.edit').on('input', function() {
$('pre').html($(this).val());
});
});
ここにプレビューがあります: http://jsfiddle.net/Recode/HaPAe/
color
テキストエリア内のテキストの をに変更するとtransparent
、カーソルも消えます。これは、Firefox (および他のブラウザー) では常にテキストと同じ色になるためです。
このスニペットを見つけました:
.edit { cursor: url(cursor.cur), default; }
しかし、これはマウスカーソルのみを変更し、テキストのどこにいるかを示すものは変更しません。
テキストは透明ですが、カーソルを表示する方法はありますか?