跟随光标/插入非鼠标的工具提示

时间:2011-10-03 22:03:20

标签: jquery cursor tooltip

  

可能重复:
  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中光标的位置。谢谢!

1 个答案:

答案 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/