可能重复:
Create tooltip at cursor position in text area with jQuery
所以我的网站有一个巨大的文本区域,基本上是整个屏幕。但是我想在这里添加单词预测。我有所有方法来实现这一点,实际上我有,但我需要一个跟随光标的工具提示。有没有办法在JavaScript中执行此操作?另外,通过光标,我不是指鼠标。应允许用户自由移动鼠标,只要文本区域处于焦点,但工具提示出现在光标所在的位置。这可能在JavaScript中,还是我在做梦?作为参考,如果有人使用Adobe Dream Weaver,那么在您键入时,结果会显示在单词下面。谢谢!另外,如果你知道有任何jQuery插件可能会这样做,请告诉我们!谢谢!
另外.....
之前我已经制作了一个ToolTip jQuery插件,但这些插件总是像这样的鼠标坐标:
function(e) {
if(...){
//Code Here
}
}
您始终导入'e'以获取鼠标位置的位置。真的,我只需要一种跨浏览器的方式来获取TextArea中光标的位置。谢谢!
答案 0 :(得分:2)
你的问题很模糊,我不确定你要求的是什么,你没有提供一个例子,所以我没有什么可以看的(提示:使用JSFiddle )< / p>
这是你要找的吗?
$(document).ready(function() {
//Tooltips
$(".tip_trigger").hover(function(){
tip = $(this).nextAll('.tip');
tip.show(); //Show tooltip
}, function() {
tip.hide(); //Hide tooltip
}).mousemove(function(e) {
var mousex = e.pageX + 20; //Get X coodrinates
var mousey = e.pageY + 20; //Get Y coordinates
//Absolute position the tooltip according to mouse position
tip.css({ top: mousey, left: mousex });
});
});
这样可以简单地将工具提示与鼠标对齐。
您可以添加此代码以确保工具提示不会离开视口。
var tipWidth = tip.width(); //Find width of tooltip
var tipHeight = tip.height(); //Find height of tooltip
//Distance of element from the right edge of viewport
var tipVisX = $(window).width() - (mousex + tipWidth);
//Distance of element from the bottom of viewport
var tipVisY = $(window).height() - (mousey + tipHeight);
if (tipVisX < 20) { //If tooltip exceeds the X coordinate of viewport
mousex = e.pageX - tipWidth - 20;
} if (tipVisY < 20) { //If tooltip exceeds the Y coordinate of viewport
mousey = e.pageY - tipHeight - 20;
}
以下是一个工作示例:http://jsfiddle.net/MarkKramer/jV2H9/