【问题标题】:D3.js tooltip reappearing after hovering over the hidden tooltip?将鼠标悬停在隐藏的工具提示上后 D3.js 工具提示重新出现?
【发布时间】:2023-03-16 10:16:01
【问题描述】:

如何使用 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);
 });

【问题讨论】:

    标签: javascript jquery d3.js


    【解决方案1】:

    您需要省略最后一段。

      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/

    【讨论】:

    • 我希望保持悬停效果,以便用户可以将鼠标悬停在工具提示中并选择选项。现在它会在 1 秒后消失
    • 我已经编辑了小提琴。我在最后添加了一个 remove() 也将淡出减少到 0.2 秒,以降低用户重新进入提示区域的可能性....
    • 所以我尝试了这个,它在小提琴中完美运行。但是,当我尝试在另一个项目中重现它时,即使使用disable(),它也会重新出现。有任何想法吗? [final-630-cnmhstnyee.now.sh]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多