현재 차트에 마우스를 올려 놓고있는 시점의 X 축에 연도를 표시하려고합니다. 이 여기에 방법과 유사한 http://www.nytimes.com/interactive/2012/11/30/us/tax-burden.html?_r=0 다음mouseover/mousemove에서 X 축 값 표시
내가 일하고 있어요 무엇 : jsfiddle.net/Rlightner/u3H8h/
내가 없음으로 X 축 표시를 설정 한: 처음에 전체 x 축 숨기기 (canvasMarket 내 SVG에 대한 변수) : "포인터 이벤트"를 "없음"과 : 나는 또한 "입력하지"로 (사각형을 추가 한 다음
var xAxisDisplay = canvasMarket.append("g")
.attr("class", "xaxis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis)
.style("display", "none");
로 "모든"은 " 오버레이 "클래스)를
canvasMarket (mouseover, mousemove 및 mouseout 메소드 포함)으로 각각 존중합니다 개 기능 :
canvasMarket.append("rect")
.attr("class", "overlay")
.attr("transform", "translate("+-tickPadding+",0)")
.attr("width", width+(tickPadding*2))
.attr("height", height)
.on("mouseover", mouseover).on("mouseout", mouseout).on("mousemove", mousemove);
는 또한 엑스 스케일 (XScale) 같은 것을 사용하여 ..., 나는 현재의 X 값을 나타 내기 위해 D를 사용하려고 한 MouseMove 이벤트 기능 thate이 값 (D) 마우스에 가장 가까운을 얻는다 만든 (d.date)를 사용하여 현재 X 축 날짜를 선택하십시오.
bisectDate = d3.bisector(function(d) { return d.date; }).left,
function mousemove() {
var x0 = xScale.invert(d3.mouse(this)[0]),
i = bisectDate(data, x0, 1),
d0 = data[i - 1],
d1 = data[i],
d = x0 - d0 > d1 - x0 ? d1 : d0;}
감사합니다.
현재 'mousemove'기능이 작동하지 않는 이유는 무엇입니까? –
Mousemove가 작동 중입니다. 그냥 X 축 값 (일명 날짜)을 가져 오는 방법을 알아 내려고합니다. – NewToJS
을 표시하기 위해 마우스를 올려 놓습니다. mousemove 함수는 마우스가 가장 가까운 배열에서 인덱스 번호를 선택합니다. 이 변수는 "d"입니다. 해당 변수를 사용하여 Xaxis 값만 표시합니다 (즉, 한 번에 하나의 X 축 값이 표시되고 마우스가 마우스가됩니다). mouseover 함수에이를 추가하려고 시도했지만 did not work : xAxisDisplay.select (xAxis (d.date)). 스타일 ("display", null); – NewToJS