2016-09-07 3 views
2

Я использую d3-tip в своей визуализации. Теперь я хочу добавить всплывающие подсказки к элементам, которые очень широки и могут простираться из видимого холста. По умолчанию всплывающая подсказка отображается в горизонтальном центре объекта, а это значит, что всплывающая подсказка может не отображаться в видимой области. Мне нужна подсказка, отображаемая в горизонтальном положении курсора, но я не знаю, как правильно изменить положение всплывающей подсказки. Я могу установить смещение, и я могу получить координаты курсора, но то, что я не могу получить, - это начальная позиция всплывающей подсказки, чтобы я мог вычислить правильное смещение. Не могу я установить абсолютную позицию:Размещение всплывающей подсказки D3 в позиции курсора

  .on("mouseover",function(d){ 
       var coordinates = [0, 0]; 
       coordinates = d3.mouse(this); 
       var x = coordinates[0]; 
       var y = coordinates[1]; 
       tip.offset([-20,20]); // this works 
       tip.attr("x",40); // this doesn't 
       tip.show(d); 
      }) 
+0

Ну, это атрибут, я склоняю их всех в кавычки .. это возможный источник ошибок? – speedymcs

+0

mate Я передаю x как аргумент '.attr (...)' .. это похоже на 'setAttribute (...)' – speedymcs

+0

Вы правы, я не знаю, где мой ум. просто удалил комментарии. –

ответ

1

Если вы хотите использовать смещение, вы можете получить начальное положение подсказки после tip.show (D):

tip.style('top'); 
tip.style('left'); 

Аналогичен, чтобы установить абсолютное положение:

.on('mouseover', function(d){ 
     var x = d3.event.x, 
      y = d3.event.y; 

     tip.show(d); 

     tip.style('top', y); 
     tip.style('left', x); 
     }) 
+0

Я могу получить координаты, но я не могу их установить, например. 'tip.style (" top ", 20)' не имеет никакого эффекта, и я разместил его как до, так и после 'tip.show (d)' ... – speedymcs

Смежные вопросы