D3:防止工具提示开箱即用

时间:2021-01-06 15:40:29

标签: javascript angular d3.js charts tooltip

我有一些图表,例如折线图和面积图,但工具提示是开箱即用的。 Click here to check issue。特别是当它在移动视图中时。在这种特殊情况下,我希望工具提示在接近右边框时持续向左呈现。

下面是代码。如果需要更多其他信息,我很乐意分享更多信息。提前致谢!

    const body = document.body;
    const docElem = document.documentElement;
    const scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
    const scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;
    const clientTop = docElem.clientTop || body.clientTop || 0;
    const clientLeft = docElem.clientLeft || body.clientLeft || 0;
    //var y = box.top +  scrollTop - clientTop;
    let y = d3.event.clientY + scrollTop - clientTop;
    let x = d3.event.clientX + scrollLeft - clientLeft;
    const tooltipWidth = tooltip.width();
    const tooltipHeight = tooltip.height();
    x = (x > tooltipWidth / 2 + 16) ? x - tooltipWidth / 2 : 16;
    y = (y < tooltipHeight + 30 + 3.5) ? 5 : y - tooltipHeight - 25 - 3.5;
    tooltip
      .css('left', Math.max(0, x) + 'px')
      .css('top', y + 'px');

用于理解某些值来自何处的附加代码:

// show tooltip
  const tooltip = $('div.widget-tooltip');
  let tooltipText = '';
  ...
  tooltip.html(tooltipText);
  tooltip.show().css('opacity', 1);

0 个答案:

没有答案
相关问题