工具提示位置不变 (D3)

Tooltip position is not changing (D3)

我正在尝试创建一个工具提示,它会出现在代表数据的点旁边。 这是完整的项目:https://codepen.io/imestin/pen/rNOpdae?editors=0110

这是定位工具提示的代码:

var mousemove = function(d) {
    Tooltip
      .html("Time: " + d.Time + "<br>Time in seconds: " + d.Seconds + "<br>Year: " + d.Year + "<br>" + d.Doping)
      .attr("data-year", () => {
        return d.Year;
      })
      .style("left", (d3.mouse(this)[0]+70) + "px")
      .style("top", (d3.mouse(this)[1]) + "px")

无论我做什么,我什至可以在那里写70之类的修复数字,工具提示的位置不会改变。 我正在根据 this 教程做工具提示,它在哪里工作。

我不明白我做错了什么。

添加此 css 规则:


.tooltip {
  display: inline;
  position: fixed;
}

您可以改进进行此更改的代码

var mousemove = function(d) {
    Tooltip
      .html("Time: " + d.Time + "<br>Time in seconds: " + d.Seconds + "<br>Year: " + d.Year + "<br>" + d.Doping)
      .attr("data-year", () => {
        return d.Year;
      })
      .style("left", (d3.mouse(this)[0]+ 20) + "px")
      .style("top", (d3.mouse(this)[1]) + "px")
  }

问题不是 d3.js 代码,而是 css 规则。在您的代码中,工具提示 div 像块元素一样工作,因此它使用页面的整个宽度。它还使用错误的位置规则。对于 css 职位,此资源 https://www.w3schools.com/cssref/pr_class_position 应该会有帮助。 效果更好。