event.pageX 및 event.pageY
설명은 아래 event.pageX 설명이다 문서의 왼쪽 가장자리로 마우스 상대적인 위치.
다음은 내 응용 프로그램에서 사용한 코드입니다.
mouseover 이벤트에서 아래 div를 표시 할 수 있습니다.
date.selectAll("rect")
.data(function(d) {
return d.mattel_data;
})
.enter().append("rect")
.attr("width", x.rangeBand())
.attr("y", function(d) {
return y(d.y1);
})
.attr("height", function(d) {
return y(d.y0) - y(d.y1);
})
.style("fill", function(d) {
return color(d.name);
})
.on("mouseover", function(d) {
div.transition()
.duration(100)
.style("opacity", .9);
var hoverVal = (d.y1 - d.y0);
var formatter = new Intl.NumberFormat('en-US',{
style : 'currency',
currency : 'USD',
minimumFractionDigits : 2,
});
var pop = formatter.format(hoverVal);
// console.log(pop);
div.html("Value:" + pop + "<br/>" + d.name)
.style("left", (d3.event.pageX - 140) + "px")
.style("top", (d3.event.pageY - 80) + "px")
.style('position', 'absolute')
.style('font-size', '15px')
.style('background', function() {
return color(d.name);
})
.style('color', function() {
return getContrastYIQ(color(d.name));
})
})
.on("mouseout", function(d) {
div.transition()
.duration(200)
.style("opacity", 0);
});
도움이되는지 확인하십시오. 또한 여기에 코드를 게시하면 문제를보다 명확하게 이해하는 데 도움이됩니다.
jsfiddle를 제공 할 수 있습니까? 다른 툴팁 라이브러리에서 컨테이너를 기준으로 클릭하거나 배치 할 위치를 표시 할 수있는 옵션을 설정할 수 있음을 알고 있습니다. – derp