我正在尝试在文本区域中创建一个提示框,位于输入符号的上方。如果我能够获取文本区域中光标的x,y坐标,那么这将很容易实现,但是我已经搜索了一段时间,无法弄清楚如何做到这一点。
假设用户在文本区域中键入文字,然后按下某个键(例如@符号),我正在尝试在文本区域光标上方显示一个小提示框。
有什么想法吗?
假设用户在文本区域中键入文字,然后按下某个键(例如@符号),我正在尝试在文本区域光标上方显示一个小提示框。
有什么想法吗?
嗯,我在jQuery事件中并没有看到任何可以轻松为插入符号提供x y坐标的内容。
但是有很多方法可以检测文本字段中插入符号的位置:
http://laboratorium.0xab.cd/jquery/fieldselection/0.1.0/test.html
程序上是否有可能检测到<input type=text>元素内的插入符位置?
利用此方法,您可以尝试估计工具提示的像素坐标。
如果您想要更准确的结果,请在文本框内使用等宽字体。
//depending on size of font
var charWidth = 10;
//using any number of the above methods to get caret position
var caretPosition = getCaretPos('#myTextField');
var textFieldOffsetX = $('#myTextField').offset.left;
var toopTipPositionX = caretPosition * charWidth + textFieldOffsetX;
它不是精确的,也不会完美无缺,但它可能足够接近。
$('textarea').keyup(function(e) {
switch (e.which) {
// @ symbol
case 50:
makeTooltip(e, 'you typed in an at symbol');
break;
}
});