使用纯Javascript定制工具提示的基本思想

使用纯Javascript定制工具提示的基本思想,javascript,tooltip,Javascript,Tooltip,我需要使用纯Javascriptcode创建自定义工具提示的基本思想 我想要的是: 例如: <a href="#" onmousemover="tooltip('text')">Link Text</a> 和onmouseover我想基于的元素位置显示一个带有固定位置的自定义工具提示,从元素的右:0或左:0开始 您需要这样一个函数: function tooltip(text, element) { var offsetDistance = 20;

我需要使用纯
Javascript
code创建自定义工具提示的基本思想

我想要的是:

例如:

<a href="#" onmousemover="tooltip('text')">Link Text</a>


onmouseover
我想基于
的元素
位置
显示一个带有
固定位置的自定义工具提示,从
元素的
右:0
左:0
开始

您需要这样一个函数:

function tooltip(text, element) {

    var offsetDistance = 20;

    tt = document.getElementById('ttdiv');
    elem = document.getElementById(element.id);
    tt.style.top = elem.offsetTop + offsetDistance + 'px';
    tt.style.left = elem.offsetLeft + offsetDistance + 'px';
    tt.style.display = 'block';
    tt.innerHTML = text;
}
其中
ttdiv
是工具提示div的id,最初设置为
display:none
。您需要一个附带的
hide()
函数来在触发
onmouseout
时隐藏工具提示


这是一个有用的问题。

关于这个问题,我有一个很好的想法

HTML

<a href="https://www.google.com" tooltip="Go to Google">Google</a>
你可以根据自己的意愿编辑CSS

这是我的


希望这能对您有所帮助。

当用户搜索
自定义工具提示时,会出现这个问题,我想添加引导的JS工具提示,尽管您提到了纯javascript。所以从某种意义上说,这个答案只是给未来的读者另一个很好的选择

看看如何使用引导工具提示插件。并了解使用Bootstrap的JS工具提示时可供您使用的选项和方法

我仍然在他们的网站上给出了
tryit

$(文档).ready(函数(){
$('[data toggle=“tooltip”]')。tooltip();
});
/*工具提示*/
.test+.tooltip>.tooltip内部{
背景色:#73AD21;
颜色:#FFFFFF;
边框:1px纯绿色;
填充:15px;
字体大小:20px;
}
/*顶部的工具提示*/
.test+.tooltip.top>.tooltip箭头{
边框顶部:5px纯绿色;
}
/*底部的工具提示*/
.test+.tooltip.bottom>.tooltip箭头{
边框底部:5px纯蓝色;
}
/*左侧的工具提示*/
.test+.tooltip.left>.tooltip箭头{
左边框:5px纯红;
}
/*右边的工具提示*/
.test+.tooltip.right>.tooltip箭头{
右边框:5px纯黑;
}

引导示例
工具提示CSS示例

为什么这么多
这些天你都试了些什么
这些新手会去哪里寻求帮助?讨厌那些话@DavidThomas我唯一的问题是,创建工具提示的位置,我认为我做得对,但位置并不像我预期的那样be@Sarfraz当前位置我不反对帮助一个什么都没有尝试过的人,但是,如果有人尝试过什么,我宁愿从这一先见之明开始。虽然我承认开头的问题可能显得有些过激,但更重要的是后面的问题,虽然它们建立在第一个的基础上。@DavidThomas:那是有道理的,我完全同意你的观点:)我不知道你是否还在,或者你是否在这段时间内找到了合适的东西,但我上周刚刚创造了这个。它作为答案发布在上。尽管你有意,它仍然不能回答问题,也不属于这里。@Rob一方面你是对的,它不属于这里。但另一方面,考虑到答案中的P.S.,我认为它确实属于这里。请再次注意以下类型::-)
(function () {

var a = document.getElementsByTagName('*'),
    tip, text,
    base = document.createElement('tooltip'); //Defining all objects

for (var x=0;x < a.length;x++) { //I'm using "for" loop to get all "a" elements with attribute "tooltip".
     a[x].onmouseover = function () {
         text = this.getAttribute('tooltip');
         tip = document.createTextNode(text);
         if (text != null) {// Checking if tooltip is empty or not.
               base.innerHTML = '';
               base.appendChild(tip);
               if (document.getElementsByTagName('tooltip')[0]){// Checking for any "tooltip" element
                   document.getElementsByTagName('tooltip')[0].remove();// Removing old tooltip
               }
               base.style.top = (event.pageY + 20) + 'px';
               base.style.left = (event.pageX + 20) + 'px';
               document.body.appendChild(base);
         }

     };
     a[x].onmouseout = function () {
         document.getElementsByTagName('tooltip')[0].remove();// Remove last tooltip
     };
}

})();
tooltip {
    position: fixed;
    background: #fff;
    color: #333;
    border: 2px solid #333;
    font-size: 15px;
}