代码之家  ›  专栏  ›  技术社区  ›  brooksrelyt Ozal Zarbaliyev

将鼠标悬停在隐藏的工具提示上后,d3.js工具提示是否重新出现?

  •  1
  • brooksrelyt Ozal Zarbaliyev  · 技术社区  · 6 年前

    如何使用d3.js来防止这种情况发生?

    问题是当用户将鼠标悬停在显示工具提示信息的点上时。但是如果它们恰好停留在工具提示曾经可见的区域上,它就会弹出。

    在这个例子中没什么大不了的。但是如果我要添加更多的信息,或者工具提示区域更大,这可能会变得多毛。

    http://jsfiddle.net/hx8pjwdu/9/

     .on('mouseover', function(d) {     
       d3.select(".d3-tip").transition().style("opacity", "1");
       tip.show(d);
     })
     .on('mouseout', function(d) {
       d3.select(".d3-tip").transition().duration(1000).style("opacity", "0").each("end", tip.hide);
     });
     d3.select(".d3-tip").on('mouseover', function(d) {
       d3.select(".d3-tip").transition().style("opacity", "1");
     }).on('mouseout', function(d) {
       d3.select(".d3-tip").transition().duration(1000).style("opacity", "0").each("end", tip.hide);
     });
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   RedCrusador    6 年前

    你需要省略最后一段。

      d3.select(".d3-tip").on('mouseover', function(d) {
           d3.select(".d3-tip").transition().style("opacity", "1");
         }).on('mouseout', function(d) {
           d3.select(".d3-tip").transition().duration(200).style("opacity", "0").each("end", tip.hide).disable();
         });
    

    这是附加的 mouseover 工具提示区域的事件,因此显示该事件的原因。简单!

    http://jsfiddle.net/1ab435px/