Javascript
我需要使用纯代码创建自定义工具提示的基本概念;
我想要的是 :
例如 :
<a href="#" onmousemover="tooltip('text')">Link Text</a>
我onmouseover
想显示一个fixed position
基于<a>
元素的自定义工具提示,从元素position
开始right:0
或从left:0
元素开始<a>
;
Javascript
我需要使用纯代码创建自定义工具提示的基本概念;
我想要的是 :
例如 :
<a href="#" onmousemover="tooltip('text')">Link Text</a>
我onmouseover
想显示一个fixed position
基于<a>
元素的自定义工具提示,从元素position
开始right:0
或从left:0
元素开始<a>
;
我对这个问题有一个好主意。
HTML
<a href="https://www.google.com" tooltip="Go to Google">Google</a>
JavaScript
(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="Text"
在任何 HTML 元素中使用
CSS
tooltip {
position: fixed;
background: #fff;
color: #333;
border: 2px solid #333;
font-size: 15px;
}
您可以根据需要编辑 CSS!
这是我的JSFiddle
希望这会帮助你。
当用户搜索时出现这个问题custom tooltip
,我想添加引导程序的 JS 工具提示,尽管您提到了纯 javascript。所以从某种意义上说,这个答案只是为了给未来的读者另一个不错的选择。
在这里查看如何使用引导工具提示插件。在这里了解使用 Bootstrap 的 JS 工具提示时可用的选项和方法。
我仍然在tryit
他们的网站上给出:
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip();
});
/* Tooltip */
.test+.tooltip>.tooltip-inner {
background-color: #73AD21;
color: #FFFFFF;
border: 1px solid green;
padding: 15px;
font-size: 20px;
}
/* Tooltip on top */
.test+.tooltip.top>.tooltip-arrow {
border-top: 5px solid green;
}
/* Tooltip on bottom */
.test+.tooltip.bottom>.tooltip-arrow {
border-bottom: 5px solid blue;
}
/* Tooltip on left */
.test+.tooltip.left>.tooltip-arrow {
border-left: 5px solid red;
}
/* Tooltip on right */
.test+.tooltip.right>.tooltip-arrow {
border-right: 5px solid black;
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h3>Tooltip CSS Example</h3>
<ul class="list-inline">
<li><a class="test" href="#" data-toggle="tooltip" data-placement="top" title="Hooray!">Top</a></li>
<li><a class="test" href="#" data-toggle="tooltip" data-placement="bottom" title="Hooray!">Bottom</a></li>
<li><a class="test" href="#" data-toggle="tooltip" data-placement="left" title="Hooray!">Left</a></li>
<li><a class="test" href="#" data-toggle="tooltip" data-placement="right" title="Hooray!">Right</a></li>
</ul>
</div>
</body>
</html>
你需要一个像这样的函数:
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
这是一个有效的JSFiddle。