Скрытие всплывающей подсказки с переходом в d3

Я новичок в d3 и программировании в целом, и я делаю график социальной сети с некоторыми подсказками. Предполагается, что всплывающая подсказка появляется, когда кто-то наводит курсор на узел, а затем исчезает и скрывается при удалении мыши. Мне удалось заставить подсказку исчезать с переходом, но подсказка на самом деле все еще там, просто невидима, так что окно и текст иногда скрывают другие узлы, делая так, что вы не можете успешно парить над частями других узлов и вызвать другие подсказки. Когда код просто node.on('mouseout', tip.hide);работает нормально, но не имеет переходов.

Вот скрипка Эффект, о котором я говорю, там не так часто встречается, как в обычном браузере. http://jsfiddle.net/wPLB5/

      node.on('mouseover', tip.show); 
      node.on('mouseout', function() { 
          d3.select(".d3-tip")
          .transition()
          .delay(100)
          .duration(500)
          .style("opacity",0);
          tip.hide;
         }); 
      //node.on('mouseout', tip.hide); //This is the original line.

Редактировать:

Я понял. Мне нужно было добавить другой стиль, о котором я не знал. Вот фиксированный код:

  node.on('mouseout', function() {
      d3.select(".d3-tip")
      .transition()
        .delay(100)
        .duration(600)
        .style("opacity",0)
        .style('pointer-events', 'none')
      });

2 ответа

Я понял. Мне нужно было добавить стиль указателя событий. Вот фиксированный код:

  node.on('mouseout', function() {
      d3.select(".d3-tip")
      .transition()
        .delay(100)
        .duration(600)
        .style("opacity",0)
        .style('pointer-events', 'none')
      });

Вы можете попробовать два подхода, используя подсказку div или заголовок svg.

 node.append("svg:title")
   .text(function(d) { return "Location:" + " " + d.location + 
      "\nFloruit Date:" + " " + d.floruitDate; });

Также, возможно, этот ответ будет вам полезен D3: показать данные о наведении курсора на кружок.

Другие вопросы по тегам