Я пытаюсь включить всплывающую подсказку, когда мышь находится на линии. Это текущие настройки, которые у меня есть:3d.js (Force) - получить текущую позицию мыши по ссылке для всплывающей подсказки
HTML:
<div id="graphContainer"></div>
<div id='hoveringTooltip' style='position:fixed;'></div>
3d.js код - Основные настройки:
var width = 1200,
height = 900;
var svg = d3.select("#graphContainer").append("svg")
.attr("width", width)
.attr("height", height);
var force = d3.layout.force()
.charge(-120)
.linkDistance(80)
.size([width, height]);
//Create all the line svgs but without locations yet
var link = svg.selectAll(".link")
.data(graph.links)
.enter().append("line")
.attr("class", "link")
.style("stroke-width", function (link) {
return link.thick
})
.attr("data-info", function (link) {
return link.info;
})
.style("marker-end", "url(#suit)")
.on("mouseover", mouseOverLink)
function mouseOverLink (e) {
//d3.select(this).style("stroke","red");
d3.select(this).attr("class", "link_selected");
var that = this;
var value = Number(this.attributes.x1.value);
var xx = d3.select(this).attr("cx") + "px"
var yy = d3.select(this).attr("cy") + "px"
var xxx = d3.event.pageX;
var yyy = d3.event.pageY;
var coordinates = [0, 0];
coordinates = d3.mouse(this);
var x = coordinates[0];
var y = coordinates[1];
var value = this.attributes[1].value;
$('#hoveringTooltip').show();
$('#hoveringTooltip').html(value);
$('#hoveringTooltip').css({
"top": xxx,
"left": yyy
});
}
В функции mouseOverLink, я перепробовал все сценарии, которые я мог бы найти на SO и в Интернете. Я получаю значения для мыши X/Y, но они всегда ошибочны. Я также попытался подключить ссылку mouseover с помощью JQuery eventing, но эти значения также неверны.
Если есть еще один способ отображения инструментария по ссылке, я был бы более счастлив.
WOW. Это сразу попало в точку. Моя настройка кода была почти идентична вашей, и я просто подключил ваш код, и он работает из коробки. Спасибо, сэр!!! –