我正在制作一个将 Kinetic.js 用于一些花哨的图形功能的 Web 应用程序,并且我想在用户将鼠标悬停在每个元素上时显示一个工具提示,其中包含有关每个元素的一些信息。
我已经想出了如何使用 Kinetic.js 在悬停时调用函数:
myKineticObject.on("mousemove", function() {
// Change content of tooltip depending on myKineticObject
// Set position of tooltip to cursor position
// Show tooltip
});
myKineticObject.on("mouseout", function() {
// Hide tooltip
}
我决定使用看似不错的Opentip来显示工具提示。唯一的问题是 Kinetic.js 没有创建任何可用的 DOM 元素来用作 opentip 的目标。
这(大致)是我的 HTML 的样子:
<html>
<head><!-- Styles --></head>
<body>
<div id="container">
<canvas class = "kineticjs-buffer-layer">
<canvas class = "kineticjs-path-layer">
<canvas class = "myLayer1">
<canvas class = "myLayer2">
<!-- ... more layers -->
</div>
<!-- Scripts -->
</body>
</html>
重要的是要知道这些画布元素都具有相同的宽度和高度,并且彼此堆叠。所以它们不能用作目标。
因此,我需要手动显示/隐藏和定位工具提示,而不是使用 DOM 元素作为工具提示的目标。我已经想出了如何像这样显示和隐藏:
var tooltip = new Opentip(
"div#container", //target element
"DummyContent", // will be replaced
"My Title", // title
{
showOn: null, // I'll manually manage the showOn effect
});
我现在执行以下操作:
myKineticObject.on("mousemove", function() {
tooltip.show();
});
myKineticObject.on("mouseout", function() {
tooltip.hide();
}
唯一的问题是它只显示在页面的左上角,我在文档中找不到关于如何手动定位这个东西的任何内容。
欢迎提出建议或想法。如有必要,我也愿意使用不同的工具提示库。
谢谢!