【问题标题】:How does a javascript tooltip workjavascript 工具提示如何工作
【发布时间】:2011-04-06 06:41:58
【问题描述】:

我只是想制作一个我自己的 [custom] 工具提示并检查它是如何进行的。令人震惊的是,它没有得到我想要的结果。 我希望工具提示跟随我的鼠标,但以不同的方式结束。下面是使用 asp.net ajax 方法的代码。

<div id="grid_alertlist" class="add_config_container shadows gradient"><div id="tooltip" style="background-color:Black;></div></div>

 Sys.Application.add_init(appLoaded);    
    function appLoaded(src,args){
    $addHandler($get("grid_alertlist"),"mousemove",hover);
    }

    function hover(evnt){
    div = $get("tooltip");
    div.style.display = "block";
    div.offsetLeft = evnt.screenX+'px';div.offsetTop = evnt.screenY+'px';
    }

代码 1 是标记,代码 2 是 javascript。我将 mousemove 事件处理程序附加到 grid_alert_list 并让 tooltip 跟随我的鼠标。 div#tooltip 移动但不跟随鼠标指针。 我能知道工具提示的工作原理吗?我看到代码需要一些数学知识,例如offsetTop/2 等。

1.我想知道这是什么原因。

2.如何使div#tooltip跟随我的鼠标指针并带有一些填充

3.开发过程中的一些错误,注意事项。

【问题讨论】:

  • @James 对不起,请不要使用 jquery。只是为了工具提示,我不想在项目中包含 jquery 和工具提示插件
  • 那你为什么用 jQuery 标记你的问题?
  • @James 因为正如我在问题中提到的那样,我已经查看了一些 jQuery 插件的代码来执行此操作。作为参考,我不得不这样做,无意中引诱了 jquery 爱好者

标签: javascript jquery jquery-ui asp.net-ajax tooltip


【解决方案1】:

screenX 是鼠标相对于整个屏幕的位置。您需要 clientX/Y,这是鼠标相对于文档的位置。

以下是差异示例: http://jsfiddle.net/PEZRH/ , http://jsbin.com/isico4/edit


$('div').mousemove(function(ev) {
    $(this).html(ev.screenX + ":" + ev.screenY + "<br/>" + ev.clientX + ":"
    + ev.clientY);
});

【讨论】:

  • 你能把它粘贴到 jsBin 上吗? jsFiddle 似乎被阻止工作场所的防火墙。 clientX 和 clientY 足够了吗?
猜你喜欢
  • 2012-06-03
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多