7
저는 D3.js로 시작 했으므로 그림을 그려서 선을 그리는 것과 같은 것을 만들고 싶습니다. 단계는 동일해야합니다 : - 화면상의 한 점을 클릭하십시오. - 목적지까지 드래그하여 선을 만듭니다.D3.js의 라이브 드로잉
지금 문제가되는 것은 마우스를 대상으로 끌면 마우스가 마우스에 따라 움직여야한다는 것입니다. 어떻게해야합니까?
감사합니다.
저는 D3.js로 시작 했으므로 그림을 그려서 선을 그리는 것과 같은 것을 만들고 싶습니다. 단계는 동일해야합니다 : - 화면상의 한 점을 클릭하십시오. - 목적지까지 드래그하여 선을 만듭니다.D3.js의 라이브 드로잉
지금 문제가되는 것은 마우스를 대상으로 끌면 마우스가 마우스에 따라 움직여야한다는 것입니다. 어떻게해야합니까?
감사합니다.
다음은 간단한 예입니다. 또한 live version을 참조하십시오.
var line;
var vis = d3.select("body").append("svg")
.attr("width", 600)
.attr("height", 400)
.on("mousedown", mousedown)
.on("mouseup", mouseup);
function mousedown() {
var m = d3.mouse(this);
line = vis.append("line")
.attr("x1", m[0])
.attr("y1", m[1])
.attr("x2", m[0])
.attr("y2", m[1]);
vis.on("mousemove", mousemove);
}
function mousemove() {
var m = d3.mouse(this);
line.attr("x2", m[0])
.attr("y2", m[1]);
}
function mouseup() {
vis.on("mousemove", null);
}
난 당신이 찾고있는 부분은 우리가 현재 행을 선택하고 현재 마우스 위치에 따라 대상 지점의 조정 mousemove
이벤트 처리기에서 생각합니다. 불필요한 처리를 피하기 위해 mousedown
에만 mousemove
을 사용 가능하게 설정합니다.
http://jsbin.com/ 또는 jsfiddle에 코드 예를 넣으면 현재 수행중인 작업을 볼 수 있습니까? – ne8il
코드가 없으면 찾고있는 것을 정확하게 볼 수는 없지만 [이 코드] (https://gist.github.com/benzguo/4370043)는 드래그를 거의하지 않습니다 (필요하지 않은 다른 기능을 사용하지만 가치는있을 수 있음). 모양) –